Firebase Firestore добавить данные без перезаписи

Я пытаюсь добавить данные в свою базу данных пожарного депо. Пожарная часть это:

Firestore db

введите описание изображения здесь

У меня есть мой PHP-файл, который загружает данные в него с этим кодом db.collection('events').doc('documentNameUsingUniqueEventID').set({id1:data1, id2:data2, id3:data3, ...});

но когда я загружаю новые данные, а старые все еще существуют, документы перезаписываются, и я теряю сделанные мной изменения. Есть ли способ добавить данные, избегая перезаписи существующих?

4 ответа

Решение

Метод set() в DocumentReference имеет второй параметр для SetOptions, который позволяет вам сказать, что вы хотите объединить данные в существующий документ, а не перезаписать его:

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

Использование .add в коллекции, чтобы добавить данные с автоматическим идентификатором.

использование .set на документе, чтобы полностью перезаписать его.

использование .update на документе, чтобы обновить его части.

Вы также написали participants неправильно.

Теперь вы можете включить слияние в наборе SetOptions.merge() например

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

Я решил свою проблему, используя.update() и {merge: true}. Я не передаю участников и ageAverage в php, но создаю их, когда мне нужно загрузить данные

Другие вопросы по тегам