使用多个文档从Flutter更新Firestore字段

时间:2020-02-08 16:57:23

标签: flutter google-cloud-firestore

DB

我想将isSeen字段更新为1,并用flutter代码中的idTo消息过滤。

void onSeenMessages(){

    Stream<QuerySnapshot> messageRef = Firestore.instance
        .collection("messages")
        .document(groupChatId)
        .collection(groupChatId)
        .snapshots();

    messageRef. {
      field.documents. {
        productName.add(field.documents[index]["name"]);
      });
    });

}

2 个答案:

答案 0 :(得分:1)

据我了解,您需要更改(isSeen)字段:

您可以这样做:

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5
1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2
1 1 1 1 1 1 1 1 1 1 1 1 1 2 5
1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2
1 1 1 1 1 1 1 1 1 1 1 2 2 5
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2
1 1 1 1 1 1 1 1 1 1 5 5
1 1 1 1 1 1 1 1 1 2 2 2 5
1 1 1 1 1 1 1 1 2 2 2 2 2 2
1 1 1 1 1 1 1 1 2 5 5
1 1 1 1 1 1 1 2 2 2 2 5
1 1 1 1 1 1 2 2 2 2 2 2 2
1 1 1 1 1 1 2 2 5 5
1 1 1 1 1 2 2 2 2 2 5
1 1 1 1 1 5 5 5
1 1 1 1 2 2 2 2 2 2 2 2
1 1 1 1 2 2 2 5 5
1 1 1 2 2 2 2 2 2 5
1 1 1 2 5 5 5
1 1 2 2 2 2 2 2 2 2 2
1 1 2 2 2 2 5 5
1 2 2 2 2 2 2 2 5
1 2 2 5 5 5
2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 5 5
5 5 5 5
combo = 29

该图片中的女巫documentID:

enter image description here

如果您不知道如何获取documentID?请告诉我。

答案 1 :(得分:1)

是,documentID未知,我需要检查所有文档。这是我找到的并且现在可以正常工作的,请告诉我是否可以对其进行优化。

void onSeenMessages()异步{

CollectionReference ref = Firestore.instance
    .collection('messages')
    .document(groupChatId)
    .collection(groupChatId);

QuerySnapshot eventsQuery =  await ref.where('idTo', isEqualTo: id).where('isSeen', isEqualTo: 0).getDocuments();

eventsQuery.documents.forEach((msgDoc) {
  msgDoc.reference.updateData({'isSeen': 1});
});

}