我正在制作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的当前值?
答案 0 :(得分:2)
您可能可以保留局部变量currentUser
,收听Stream,并在Stream每次提供新值时更新currentUser
。每当您想要获得当前用户时,请阅读currentUser
。