簡體   English   中英

更新 Firestore 集合中最后一個文檔中的一個字段 Flutter

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM