Flutter Firebase Database child('.info/connected') 总是返回 true
Posted
技术标签:
【中文标题】Flutter Firebase Database child(\'.info/connected\') 总是返回 true【英文标题】:Flutter Firebase Database child('.info/connected') always returns trueFlutter Firebase Database child('.info/connected') 总是返回 true 【发布时间】: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 数据库,无论是缓存还是服务器,也许它会给你一个真实的价值。我现在正在更深入地搜索文档...
【参考方案1】:
你需要听一下 :)
await _rootRef.child(".info/connected").onValue.listen((event)
print("value: $event.snapshot.value.toString()");
);
【讨论】:
以上是关于Flutter Firebase Database child('.info/connected') 总是返回 true的主要内容,如果未能解决你的问题,请参考以下文章
Flutter Firebase Database child('.info/connected') 总是返回 true
Flutter Web 应用程序在部署到 Firebase 托管后返回空白页面