【问题标题】:Dart: Get current value in StreamDart:获取 Stream 中的当前值
【发布时间】:2020-10-11 06:40:04
【问题描述】:

我正在制作一个 Flutter 应用程序,我在其中使用 Firebase Auth 和 Cloud Firestore。对于每个用户,我都有一个以用户 uid 作为文档 ID 的培训文档。 当我更新我的教练的数据时,我想确保只有当前登录用户的文档可以被修改。

我有一个 AuthService 类,使用以下方法获取当前用户:

Stream<FirebaseUser> get user {
  return _auth.onAuthStateChanged;
}

所以当我想更改我的 DatabaseService 类中的培训师文档时,我想获取流的当前值以获取用户 uid。我不认为我可以使用 StreamBuilder 或 Provider,因为这不是一个 Widget Tree,而是一个简单的 Dart 类。但是,我也不认为我可以使用 .listen(),因为我只想获取当前 Stream 值,而不是全部。

如何获取 Dart Stream 的当前值?

【问题讨论】:

    标签: flutter dart firebase-authentication stream


    【解决方案1】:

    您可以保留一个局部变量currentUser,监听流,并在每次流给出新值时更新currentUser。阅读currentUser,随时获取当前用户。

    【讨论】:

      猜你喜欢
      • 2019-09-08
      • 2019-12-05
      • 2021-07-02
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      • 2012-04-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多