此问题在此处已有答案:
How do you get the document id after adding document in Cloud Firestore in Dart(5个答案)
昨天关门了。
我正在检查Cloud Firestore中是否已存在聊天集合:
CollectionReference chats = FirebaseFirestore.instance.collection('chats');
void checkUser() async {
await chats
.where('users', isEqualTo: {widget.emailOtro: null, usuario!.email: null})
.limit(1)
.get()
.then(
(QuerySnapshot querySnapshot) async {
if (querySnapshot.docs.isNotEmpty) {
setState(() {
chatDocId = querySnapshot.docs.single.id;
existeChatroom = true;
});
print(chatDocId);
} else {
existeChatroom = false;
await chats.add({
'users': {usuario!.email: null, widget.emailOtro: null},
'names':{usuario!.email:miAlias,widget.emailOtro:widget.aliasOtro }
}).then((value) {
print("chat id recibido ${value}");
chatDocId = value;
});
}
},
)
.catchError((error) {});
}
检查收款聊天中是否有选中用户的单据后,函数应该返回单据id为chatDocId
在聊天文档存在的情况下,我得到了正确的chatDocId值。
但在聊天文档不存在的情况下,会创建一个新的聊天文档,但我无法从该文档中获取ID。
我为chatDocId获取值:
DocumentReference<Map<String, dynamic>>(chats/NSEgC8LvBOMfjP1Hw1IR
如何从刚创建的文档中获取文档ID?
2条答案
按热度按时间xn1cxnb41#
您可以直接从返回值中获取ID;
vhipe2zx2#
根据文档,文档参考具有
id
字段:https://pub.dev/documentation/cloud_firestore/latest/cloud_firestore/DocumentReference/id.html如果我没弄错的话,你还可以在对象的
String
表示中看到:DocumentReference<Map<String, dynamic>>(chats/NSEgC8LvBOMfjP1Hw1IR
,更明确地NSEgC8LvBOMfjP1Hw1IR