【问题标题】:Flutter: How to set a Observer entire appFlutter:如何设置一个 Observer 整个应用程序
【发布时间】:2019-12-16 08:50:02
【问题描述】:

所以,我正在尝试创建一个聊天应用程序并尝试让用户参与进来,但在阅读了网络上的大量文章后,我仍然不明白如何让它发挥作用。所以我正在尝试另一个方法,我怎样才能制作一个检查整个应用程序的观察者?

例如,现在我有一个用于在与某人聊天时告诉 Firebase Firestore(设置 ID 以使 Cloud Functions 不会通知新消息),并且我想用它来告诉 Firestore 当我与某人聊天时在线/离线。可能吗?谢谢。

我尝试创建一个有状态的 BaseScreen with WidgetsBindingObserver,但没有成功。

@override
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    switch (state) {
      case AppLifecycleState.inactive:
      case AppLifecycleState.paused:
      case AppLifecycleState.suspending:
        //offline or whatever
        break;
      case AppLifecycleState.resumed:
        //active
        break;
    }
  }

【问题讨论】:

    标签: android firebase flutter google-cloud-firestore google-cloud-functions


    【解决方案1】:

    使用Provider,这里解释了如何操作。 Example

    【讨论】:

    • 您是在告诉我使用 Provider 来保存我的用户状态吗?但我猜这不会向 Firestore 发送信息。你能举一个实际的例子吗?对不起,我不喜欢颤振
    • 通过提供者,您可以访问所有后代小部件的状态。这是一个例子:youtube.com/watch?v=HrBiNHEqSYU
    • 为什么要做这样的medium.com/flutter-community/… 而不是观察者?抱歉,我仍然不明白为什么提供者更好地与 Firebase 通信,因为我已经使用了 StateModel
    【解决方案2】:

    我对 Flutter 不熟悉,但你可以尝试使用Cloud Firestore Presence,你可以用它来显示在线和免费聊天的朋友列表。

    请注意,Cloud Firestore 本身并不支持在线状态,但您可以利用其他 Firebase 产品来构建在线状态系统。

    在这种情况下,他们将 Cloud Functions 与实时数据库结合使用。

    希望这有帮助! :D

    【讨论】:

    • 我唯一的问题是将用户存在发送到 firestore/fcm。人们说 Provider 可以,但我不知道从哪里开始
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    相关资源
    最近更新 更多