[英]Update a field in the last document in Firestore collection Flutter
我正在嘗試更新 Firestore 集合中最后一個文檔中的字段。 我的更新方法如下:
updateHours() {
return usersRef.doc(firebaseAuth.currentUser!.uid).collection('posts')
.orderBy('datePublished', descending: true)
.limit(1).get().then((querySnapshot) {
return querySnapshot.docs.map((e) {
usersRef
.doc(firebaseAuth.currentUser!.uid).collection('posts')
.doc(e.reference.id)
.update({"totalTime": FieldValue.increment(1)});
});
});
}
這是行不通的。 如果我使用.forEach(),那么所有文檔都會更新。 那么,如何只更新最后一個文檔字段呢?
為了能夠更新上一個文檔中的totalTime
字段,請使用以下代碼行:
void updateHours() async{
CollectionReference postsRef = usersRef
.doc(firebaseAuth.currentUser!.uid)
.collection('posts');
QuerySnapshot query = await postsRef.orderBy('datePublished', descending: true)
.limit(1)
.getDocuments();
query.documents.forEach((doc) {
doc.reference.updateData({"totalTime": FieldValue.increment(1)});
});
}
不要忘記 Firebase API 是異步的,您需要等待數據可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.