Слияние Firestore не возвращает Pormise - PullRequest
0 голосов
/ 05 марта 2019

Я пишу в Firestore в соответствии с указаниями здесь https://firebase.google.com/docs/firestore/manage-data/add-data и устанавливаю опцию merge:true, однако это не возвращает обещание?Из-за этого мы не можем связать .then() или .catch() с включенным этим флагом.

Как мы можем точно знать, что он завершил операцию set / merge тогда?

Спасибо

1 Ответ

0 голосов
/ 05 марта 2019

Использование опции {merge: true} с методом set() не меняет поведение метода с точки зрения того, что он возвращает.Как объяснено в документации , метод возвращает Обещание :

Возвращает: ненулевое Обещание, содержащее void.Обещание, которое разрешается после успешной записи данных в бэкэнд.(Обратите внимание, что он не будет разрешен, пока вы не в сети).

Поэтому, если вы не в сети, вы можете сделать следующее:

db.collection("cities").doc("LA").set({
    name: "Los Angeles",
    state: "CA",
    country: "USA"
},
{merge: true})
.then(function() {
    // ->>> Here you can be sure that "it has completed the set/merge operation"
    console.log("Document successfully written!");
})
.catch(function(error) {
    console.error("Error writing document: ", error);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...