如何在Flutter中从Firebase获取当前活动用户?

9
我正在使用flutter和firebase制作应用程序。我需要从firebase获取活动用户。 我尝试创建一个名为isActive = false的firebase集合布尔字段,并在此函数中启动名为_checkInternetConnectivity();的功能。在这个函数中,当互联网连接可用时,设置isActive = true在firebase中更新值,当没有互联网连接时,更新值isActive = false到目前为止我的代码完美运行,但问题是当互联网连接可用时,它将isActive = true的值设为真,但当没有互联网连接时,无法更新值isActive = false
代码在此处:
void initState() {
    super.initState();
    _checkInternetConnectivity();
}

_checkInternetConnectivity() async {
    var connectivityResult = await (Connectivity().checkConnectivity());
    if (connectivityResult == ConnectivityResult.mobile) {
      FirebaseFirestore.instance.collection('Profile').doc(user.uid).update({
        'isActive': true,
      });
      print('done mobile');
    } else if (connectivityResult == ConnectivityResult.wifi) {
      _addData.doc(user.uid).update({
        'isActive': true,
      });
      print('done wifi');
    } else if (connectivityResult == ConnectivityResult.none) {
      FirebaseFirestore.instance.collection('Profile').doc(user.uid).update({
        'isActive': false,
      });
      print('done none');
    }
  }
}

那么,我该如何改进这段代码或通过其他方式在Flutter中从Firebase获取活跃用户?

谢谢。

2个回答

1

OnDisconnect

OnDisconnect类用于管理在此客户端断开连接时将在服务器上运行的操作。它可以根据客户端的连接状态添加或删除数据。在寻找“存在”功能的应用程序中非常有用。

通过调用Firebase数据库引用上的onDisconnect来获取此类的实例。

您的解决方案在这里


0
你可以创建一个类似于lastActiveTimestamp的字段,并在用户打开应用程序时更新它。然后,您可以通过最后一次使用应用程序的时间来筛选用户。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接