firebase-realtime-database - Firebase 实时数据库一旦方法在网络扩展中不起作用
问题描述
我正在使用 Firebase API 匿名登录并从 Tampermonkey 扩展中获取数据。在 Chrome 中用作魅力,但在 Firefox 中根本不起作用。
firebase.auth().signInAnonymously().catch(function(error) {
console.log("login error: "+ error);
});
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
firebase.database().ref().once("value").then(function(snapshot) {
debugger; // never gets here
GM_setValue("lastUpdate", new Date());
GM_setValue("lastState", snapshot.val());
}).catch(function(error) {
debugger; // never gets here
console.log("error reading DB: " + error);
});
}
});
它永远不会出现在 Firefox 中的调试器中。控制台完全没有错误。可能是什么原因?GM_xmlhttprequest 在两者中都或多或少地工作,但我也需要身份验证,所以想使用官方 API。
谢谢你
更新:在最近的 Chrome 更新之后,它也不能在那里工作。默默地死在某个地方……
解决方案
事实证明,localStorage 中有一个值可以阻止一切正常工作。应用程序初始化中的以下代码解决了问题。
if (localStorage) { // fix for API
localStorage.removeItem("firebase:previous_websocket_failure");
}
某些东西将其设置为 true,并且没有人在清理它。自 2017 年以来在 github 上有关于此的问题,似乎尚未解决。
推荐阅读
- apache-spark - pyspark 在记录“INFO DAGScheduler: failed: Set()”后挂起
- node.js - 检查 puppeteer 中是否存在图像
- asp.net-core - 寻找使用 AAD B2C 调用 api 的 asp.net 核心 Web 应用程序的示例
- sql - 如何解决oracle sql中的单分组问题
- java - G1 GC什么时候会直接在老年代分配对象
- azure - 手动 Azure 备份 Cosmos DB
- react-native - React Native:使用“React-Native-FS”时的不变违规
- javascript - 在 Flask 中将带有 Jquery 和 JSON 的 Javascript 数组从客户端传递到服务器端
- javascript - 如何将键数组和值数组合并到一个对象中?
- redis - 是否可以将哈希存储到redis中的排序集中?