firebase - 浏览器空闲后的 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 中消失
解决方案
推荐阅读
- flutter - 图像资源服务捕获的异常,在 dispose() 后调用 setState():_ImageState
- ios - 为什么我的函数没有重新加载 UITableView 的数据?
- php - Azure AD 组预配:更新组时未从 AD 获取 PATCH 请求
- r - 为什么在 R 中的函数中首选 require() 命令?
- javascript - 有没有办法在 html 中的服务器中显示不和谐成员
- javascript - 如何仅在异步命令完成后循环遍历数组?
- javascript - chrome的奇怪行为
- sql - 这两个版本有什么区别
- javascript - 向 Javascript 文件添加异步函数后浏览器崩溃。怎么修?
- reactjs - 将 MediaStream 动态添加到 current.srcObject 到 useRef 列表中