如何使用 Flutter 从 Firebase 获取当前活跃用户?

Posted

技术标签:

【中文标题】如何使用 Flutter 从 Firebase 获取当前活跃用户?【英文标题】:How I can get current active users from Firebase with Flutter? 【发布时间】:2021-07-16 08:58:57 【问题描述】:

我正在使用 Flutter 和 Firebase 制作应用程序。我需要从 firebase 获得活跃用户。 我正在尝试通过在名称为 isActive = false 的 Firebase 集合中创建一个布尔字段并在该函数中启动一个名称为 _checkInternetConnectivity(); 的函数,我在该函数中设置了 Internet 连接Firebase 中 isActive = true 的可用更新值,当没有互联网连接更新值 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 获得活跃用户的方式。问候

【问题讨论】:

【参考方案1】:

断开连接

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

此类的实例是通过在 Firebase 数据库引用上调用 onDisconnect 获得的。

您的解决方案是here

【讨论】:

以上是关于如何使用 Flutter 从 Firebase 获取当前活跃用户?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Flutter 从 Firebase 中的两个集合中获取数据

如何使用 Flutter 中的 UserID 从 Firebase Firestore 检索数据?

Flutter 在使用 StreamBuilder 从 firebase 加载数据之前显示红色错误屏幕,如何解决?

从 Firebase 数据快照获取 JSON 键值

如何从 Firebase 实时数据库中获取数据到 Flutter 中的列表中?

Flutter/Firebase/url_launcher/ 如何从应用程序发送短信?