我正在制作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的当前值?
最佳答案
您可以保留局部变量currentUser
,侦听Stream,并在Stream每次提供新值时更新currentUser
。要获取当前用户,请阅读currentUser
。
关于flutter - Dart:在Stream中获取当前值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62496862/