Mil*_*lie 4 dart flutter google-cloud-firestore
在 Dart 中,如何检索集合文档中自动生成的 ID?
我有一个名为“用户”的集合,其中包含带有用户详细信息的自动 ID 文档。你怎么找回那个ID?
ID eg: yyHYmbDelykMPDWXHJaV
Run Code Online (Sandbox Code Playgroud)
我正在尝试获取此 ID。首次创建文档时,首次创建用户时,将user.uid
存储在其集合中。
我可以从users
数据库中检索所有我不想要的数据:
void getData() {
databaseReference
.collection('users')
.getDocuments()
.then((QuerySnapshot snapshot) {
snapshot.documents.forEach((f) => print('${f.data}'));
});
}
Run Code Online (Sandbox Code Playgroud)
我可以获得当前用户的 user.uid 的未来参考,但这仍然没有给我唯一的文档 ID。
Future<DocumentReference> getUserDoc() async {
final FirebaseAuth _auth = FirebaseAuth.instance;
final Firestore _firestore = Firestore.instance;
FirebaseUser user = await _auth.currentUser();
DocumentReference ref =
_firestore.collection('users').document(user.uid);
print(ref);
return ref;
}
Run Code Online (Sandbox Code Playgroud)
是否可以针对数据库用户搜索 user.uid 并以这种方式检索 ID?
要获取自动生成的 id,您只需document
在您尝试从中获取文档的任何集合上调用该方法,返回的值将有一个 getterdocumentID
final userDocument = usersCollection.document();
final documentID = userDocument.documentID;
Run Code Online (Sandbox Code Playgroud)
您通常在第一次想要创建文档时执行此操作。要documentID
在创建后检索它,我会将它添加到用户文档本身:
userDocument.setData({
documentID: documentID,
/* ... */
});
Run Code Online (Sandbox Code Playgroud)
documentID
虽然我没有使用自动生成的,但我个人使用 firebase 用户的uid
属性只是因为它与 Firebase auth 相关联
// user is a FirebaseUser
final userDocument = usersCollection.document(user.uid);
userDocument.setData({
uid: user.uid,
// ...displayName, email, etc.
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4771 次 |
最近记录: |