我有如下所示的Firestore数据库
- user
- (document id)
- userId: Rsa245156.....
- username: user67
- age: 23
- address: Flamboyan Street No. 24
- picture_path: ......
我从Firebase Auth中的userId创建了一个userId,因此,当登录的用户打开“配置文件”标签时,应用程序将在Firestore数据库中查找与登录的用户userId相同的userId,并加载与该userId关联的所有字段。
问题是,如何找到相同的userId,并加载所有字段或仅加载“ username”字段?我用扑打
答案 0 :(得分:0)
您可以使用当前用户的数据(电子邮件)来实现。 orderByChild选择该字段,并使用equalTo方法比较该值。
我希望以下示例对您有所帮助。
FirebaseUser user = await FirebaseAuth.instance.currentUser(); // get the current users details
DatabaseReference ref = FirebaseDatabase.instance.reference();
ref.child('user')
.orderByChild('userId')// userId contain the email id of users
.equalTo(user.email) // if you login your user using email ID
.onValue
.listen((event) {
DataSnapshot data = event.snapshot;
var keys = data.value.keys;
var todo = data.value;
for (var key in keys) {
_email= todo[key]['userId']; // get the email id
}
});
答案 1 :(得分:0)
您要如何使用Firestore,可以使用下面的代码来使用。旧的Firebase是另一类。
Firestore _firestore = Firestore.instance;
firestore.collection('user')
.where('userId', isEqualTo: user.reference)
.snapshots().listen((snapshot) {
snapshot.documents.forEach((doc) {
doc.data['username']
})
})