【发布时间】:2022-01-05 08:11:05
【问题描述】:
我有一个应该返回当前登录用户的 userData 的流提供程序。它应该获取电子邮件等于当前 user.email 的用户的信息。我猜流提供商会在保存当前用户的电子邮件之前加载数据,因为它会加载所有用户的信息`。那么我应该如何让流提供者等到当前用户的电子邮件被保存。 加载当前用户的函数。
Future<void>loadLoggedUser() async{
FirebaseAuth.instance
.userChanges()
.listen((User? user) {
if (user == null) {
print('User is currently signed out!');
} else {
email=user.email;
userid=user.uid;
print('User is signed in!');
}
});
notifyListeners();
}
userData 的流提供程序
Stream<List<UserData>> get UserList {
return _db.collection('users').where('email', isEqualTo: email)
.snapshots()
.map((snapshot) =>
snapshot.docs
.map((document) =>
UserData.fromJson(document.data())).toList()
);
}
任何帮助将不胜感激
【问题讨论】:
标签: firebase flutter google-cloud-firestore stream provider