Firebase Firestore无需覆盖即可添加数据

时间:2018-02-05 16:21:28

标签: php firebase google-cloud-firestore overwrite

我正在尝试将数据添加到我的firestore数据库。火店是这样的:

Firestore db

enter image description here

我的php文件使用此代码db.collection('events').doc('documentNameUsingUniqueEventID').set({id1:data1, id2:data2, id3:data3, ...});

将数据加载到其中

但是当我加载新数据时,旧的数据仍然存在,文档会被覆盖,我失去了我所做的更改。有没有办法添加数据,避免覆盖现有数据?

4 个答案:

答案 0 :(得分:5)

DocumentReference上的set()方法有SetOptions的第二个参数,可以让您说要将数据合并到现有文档中而不是覆盖它:

db.collection('events')
    .doc('documentNameUsingUniqueEventID')
    .set(data, { merge: true });

答案 1 :(得分:0)

集合上使用.add添加具有自动ID的数据。

文档上使用.set完全覆盖它。

文档上使用.update来更新部分内容。

您还拼错了participants

答案 2 :(得分:0)

我使用.update()和{merge:true}解决了我的问题。我不会在php中传递参与者和ageAverage,但是当我必须上传数据时我会创建它们

答案 3 :(得分:0)

现在您可以启用SetOptions.merge()设置的合并功能

db.collection('events')
    .doc('documentNameUsingUniqueEventID')
    .set(data, SetOptions.merge());