首页 > 解决方案 > 浏览器空闲后的 Firebase 出现错误:permission_denied:客户端无权访问所需数据

问题描述

这个问题是 8.6 中的新问题。我在 8.3.3 中没有遇到过这个问题。8.4 中有一个 .once() 问题,直到 8.6.1 才修复,所以我没有在这些版本上进行测试。

用户通常可以访问数据库。但是如果浏览器闲置一段时间,任何读/写尝试都会导致权限被拒绝。我知道的唯一解决方法是刷新浏览器选项卡,并丢失会话中的任何内容。

我通常会打开几个浏览器选项卡到该站点并保持登录状态。所有选项卡都将通过绑定到 Angular 模板来显示来自实时数据库的数据。如果我让浏览器闲置一两个小时,所有选项卡都将停止更新。UI 将继续响应,只是它不再从数据库更改或过滤条件更改中接收新的 observables。在某些情况下(但不是全部),我进一步收到上面的错误消息,permission_denied。

浏览器选项卡刷新后,选项卡将恢复正常。由于我的登录凭证是使用 firebase 令牌,我什至不需要再次输入密码。F5 足以让页面开始显示数据库更改。

我能做些什么来规避这种情况?

Angular 12 Angular Fire 6.1.5 问题出现在 firebase 8.6.1 或 8.6.2 问题在 firebase 8.3.3 中消失

标签: firebasebrowserpermissions

解决方案


推荐阅读