【发布时间】:2020-08-23 22:27:22
【问题描述】:
当我按下我的应用程序上的按钮时,我会调用它。
await _rootRef.child(".info/connected").once().then((data){
print("value: ${data.value}");
});
data.value 返回 true,无论是我的连接状态。 Ive 数据库持久性为真,并且引用 keepsynced 也为真......但两者都为假,这也会发生! 我需要为此做一个听众或者是怎么回事:(
太棒了
编辑: 数据库和规则,如果对 _rootRef 有任何疑问。它是 FirebaseDatabase.instance.reference()。 您需要的任何其他屏幕或数据我在这里,您的时间。
编辑2: 在这里,您有一个重新创建问题的存储库: https://github.com/rubcc95/flutter-firebase
我还制作了一个关于以下内容的视频: https://www.youtube.com/watch?v=pbrtjS1r5fA
【问题讨论】:
-
添加你的数据库截图
-
当然,加了ty。
-
firebase.google.com/docs/database/android/… .info 是数据库中的一个特殊位置。如果 .info 不存在,我不会收到 bool true,我只会收到 null,所以它存在。
-
.info/connected返回的值不依赖于您的 JSON 结构,也不依赖于您的安全规则、磁盘持久性或调用 keepsynced。如果您收到true,则表示客户端已连接到 Firebase 数据库服务器。如果它似乎对您有所不同,请添加minimal, exact/standalone steps that any of use can take to reproduce that behavior。 -
很抱歉这么长时间才回复,并一如既往地感谢您的宝贵时间。我已经更新了您要求的最低要求...我意识到如果我从 MyHomePage 中删除流,它会在 60 秒后显示为已连接:false。如果我可能将 .info/connect 用作错误的目的,这让我回答了,因为我只是想看看我在进行查询时是否与服务器建立了连接。如果 .info/connnected 连接到 Firebase 数据库,无论是缓存还是服务器,也许它会给你一个真实的价值。我现在正在更深入地搜索文档...
标签: firebase flutter firebase-realtime-database