Firebase Cloud Firestore создает запись или обновляет, если она уже существует - PullRequest
0 голосов
/ 18 октября 2019

У меня проблема с вопросом, когда добавить или обновить запись в базе данных Firebase Firestore.

Использование doc_ref.set добавит документ, если он не существует. Он также переопределит все поля документа, если он уже существует и вызван set.

Использование doc_ref.update обновит поля документа, если документ существует. Если документ не существует, ничего не происходит.

Как добавить новое поле в документ, если поле в данный момент не существует, или обновить поле, если оно существует? Я мог бы прочитать базу данных и проверить, существует ли поле, а затем использовать set или update, но наверняка есть более простой способ?

1 Ответ

2 голосов
/ 18 октября 2019

Что вам нужно, так это опция merge в операции set. Из документации настройка документа :

var cityRef = db.collection('cities').doc('BJ');

var setWithMerge = cityRef.set({
    capital: true
}, { merge: true });

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...