Firebase Firestore 添加数据而不覆盖

Firebase Firestore add data without overwrite

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

Firestore 数据库

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

将数据加载到其中

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

set() method on DocumentReference has a second parameter for SetOptions 允许您说要将数据合并到现有文档而不是覆盖它:

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

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

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

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

你也拼写 participants 错误。

我使用 .update() 和 {merge: true} 解决了我的问题。我没有在 php 中传递 participants 和 ageAverage 但我在必须上传数据时创建它们

现在您可以启用 SetOptions.merge() 集合中的合并,例如

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