在这里,我尝试在documentID(String keyId(的帮助下更新用户的退出时间。当用户在给定的输入字段中添加 DOCUMENTID 或 keyId 和 Exit-time:Value(更新(时,更新完成。cloud_database中的数据以如下方式更新(KeyId(KzlWLHJc0di6QziewVV7( => InputField => 更新在cloud_database中完成(。
1st Code:(The below code working & updating properly in database)
String KeyId;
QuerySnapshot qs = await Firestore.instance.collection('student entry').getDocuments();
qs.documents.forEach((DocumentSnapshot snap) async {
if(snap.documentID == keyId ) {
DocumentReference documentReference = Firestore.instance.collection(
'student entry').document(keyId);
documentReference.updateData({
'Exit-time': date,
});
但是现在我为每个用户添加了身份验证。为每个用户单独存储数据的数据库。现在我不知道我可以在第二个代码中做什么 Else 修改以获得像上面代码这样的工作过程。
2nd code:
String keyId;
CollectionReference vaultCollection = Firestore.instance.collection('student entry').document(uid).collection('vault'); //Where should i add keyId new code
DocumentReference doc=vaultCollection.document();
doc.updateData({
'Exit-time': date,
});
我假设您有要更新数据的Document ID
。您可以将setData
函数与merge: true
一起使用。您无需获取数据即可更新它。
在您的示例中,KeyId
是要更新数据的Document ID
。
第一个代码
DocumentReference documentReference = Firestore.instance.collection('student entry').document(keyId);
documentReference.setData({'Exit-time': date},merge:true);
第二个代码
现在,由于您将数据存储在Sub-Collection
.仅更新文档引用。
DocumentReference documentReference = Firestore.instance.collection('student entry').document(uid).collection('vault').document(keyId);
documentReference.setData({'Exit-time': date},merge:true);
希望这有帮助。