在Cloud Firestore中创建或更新Firebase

Ped*_*iva 3 firebase google-cloud-firestore

我正在开发一个简单的应用程序,并对Firebase Cloud Firestore有一个疑问。

当我们执行db.doc('docname').set(myInfo)代码时,Firebase会将其视为“创建”还是“更新”?

Ale*_*amo 9

如果使用该set()函数,则意味着如果文档不存在,则会创建该文档。这意味着您需要为写入操作付费。如果文档确实存在,则除非您指定将数据合并到现有文档中,否则它将用新提供的数据覆盖其内容,如下所示:

var setWithMerge = yourDocRef.set({
  yourProperty: "NewValue"
}, { merge: true });
Run Code Online (Sandbox Code Playgroud)

这也将代表写操作,并且还会向您收费。如果要按照以下代码更新属性:

return yourDocRef.update({
    yourProperty: "NewValue"
})
.then(function() {
    console.log("Document successfully updated!");
})
.catch(function(error) {
    console.error("Error updating document: ", error);
});
Run Code Online (Sandbox Code Playgroud)

这也意味着您正在执行写操作。根据有关Firestore使用和限制的官方文档,写操作和更新操作之间没有区别,两者都被视为写操作。