【问题标题】:Flutter - How to add a field to all documents in firebase collectionFlutter - 如何向firebase集合中的所有文档添加一个字段
【发布时间】:2021-08-19 07:50:06
【问题描述】:

我正在使用颤振火力基地。我想要一个查询来为 firebase 集合中的所有文档添加键和值。

我尝试使用批量写入,但它添加了一个具有字段的新文档。但不合并到现有文档。

var db= Firestore.instance();
var batch = db.batch();
batch.setData(
db.collection("users").document(),
{"status": "Approved"}
);

当我尝试提供像 document('id') 这样的文档 ID 时,它只会添加到该文档中。

我尝试了很多并观看了 YouTube 视频,但现在仍然找不到。请帮帮我!

【问题讨论】:

  • SetData 将始终添加一个新文档,请使用 update() 代替,例如 var db = FirebaseFirestore.instance; var batch = db.batch(); DocumentReference ref = db.collection("users").doc(); Map data = {"status": "Approved"}; batch.update(ref, data);

标签: firebase flutter firebase-realtime-database google-cloud-firestore


【解决方案1】:

这是因为您使用的是 setData() 方法,而应该使用 updateData() 来更新:

var db= Firestore.instance();
var batch = db.batch();
batch.updateData(
db.collection("users").document(),
{"status": "Approved"}
);

【讨论】:

    【解决方案2】:

    在您应用中的某个页面上创建一个虚拟按钮。按下按钮应在特定集合的所有文档中添加该字段。

    在这里,我使用 IconButton 在“用户”集合中添加了一个名为“bio”的空字段。

    在文档中添加字段后,您可以稍后删除该按钮,因为这是您(开发人员)的问题,而您的应用用户不需要该按钮。

    IconButton(
                          onPressed: () {
                            FirebaseFirestore.instance
                                .collection('users')
                                .get()
                                .then(
                                  (value) => value.docs.forEach(
                                    (element) {
                                      var docRef = FirebaseFirestore.instance
                                          .collection('users')
                                          .doc(element.id);
    
                                      docRef.update({'bio': ''});
                                    },
                                  ),
                                );
                          },
                          icon: Icon(Icons.done),
                        ),
    

    【讨论】:

      猜你喜欢
      • 2021-06-04
      • 2021-05-27
      • 1970-01-01
      • 2022-12-20
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 2021-01-06
      相关资源
      最近更新 更多