Firestore合并不会返回Pormise

时间:2019-03-05 05:24:25

标签: firebase google-cloud-firestore

我正在按照https://firebase.google.com/docs/firestore/manage-data/add-data的指导原则写信给Firestore,并设置merge:true选项,但是,这不会返回承诺吗?因此,我们无法在启用此标志的情况下链接.then().catch()

我们如何确定它已经完成设置/合并操作?

谢谢

1 个答案:

答案 0 :(得分:0)

{merge: true}选项与set()方法一起使用不会改变该方法在返回值方面的行为。如documentation中所述,方法返回一个Promise

  

返回:非null包含无效内容的Promise。一旦解决的诺言   数据已成功写入后端。 (请注意,不会   离线时解决)。

因此,除非您处于离线状态,否则可以很好地执行以下操作:

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);
});