Выполнение этого:
db.collection("test").doc()
.set({
value: 100
}).then(resultOrWhateverItReturns => { /*never executed*/ });
возвращает обещание, всегда оставающееся в его состоянии pending
, поэтому код в ветви then
никогда не выполняется (я думаю, что та же проблема будет применяться к catch
один).Я видел, как некоторые человек обертывают set
другим обещанием и решают его сразу после вызова set
, таким образом, работая с ним почти так же, как с синхронным вызовом, который выглядит неправильно.
Есть ли способ запустить команды вставки / обновления, возвращающие полезные, то есть выполненные / отклоненные обещания?Я использую v. 6.6.1
из sdk.
Обновление 1 - Документация Cloud Firestore предлагает следующий подход, который не работает для меня из-зафакт, что обещание, возвращенное set
, находится в состоянии ожидания.Фактические данные обновляются в порядке.
db.collection("users").doc("frank").set({
name: "Frank",
favorites: {
food: "Pizza",
color: "Blue",
subject: "Recess"
},
age: 12
}).then(function() {
console.log("Frank created");
});