【发布时间】:2018-10-20 08:33:55
【问题描述】:
在使用firebase和flutter-fire firebase_database插件时,如何判断我们的flutter应用是在线还是离线?
这篇博文 (https://firebase.googleblog.com/2013/06/how-to-build-presence-system.html) 展示了在应用上线/下线时使用“.info/connected”子节点获取事件。但是,它似乎只在应用启动时触发一次,仅此而已。
我正在使用这个:
void initState() {
super.initState();
print('Setting up the connected handler');
final amOnline = FirebaseDatabase.instance.reference().child('.info/connected');
_amOnlineSubscription = amOnline.onValue.listen((Event event) {
print('EVENT has occured');
});
}
也许有更好的方法来确定在线/离线状态?我想要做的是在设备离线时避免登录页面。然而,一旦它再次连接到 Firebase,就强制登录......
【问题讨论】:
-
好吧,我刚刚发现上面的代码在真正的手机上确实有效。我在模拟器中进行测试并关闭了笔记本电脑的 wifi,但由于某种原因,它没有在 firebase 中注册为未连接。
-
我还发现了这个颤振插件,它允许你订阅一个流,让你知道连接状态:连接。我会把这个问题留在这里,以防有人知道更好或更合适的方法......
-
嗨,Jason,你说的是插件,但是什么插件?您能否提供一个答案,因为我认为您可能需要做一个观察者,所以请您如何管理?
-
这是我上面的第二条评论。该插件称为“连接性”。
标签: flutter