如何在Firestore中更新文件?

时间:2019-03-21 12:04:27

标签: javascript firebase google-cloud-firestore

我阅读了一些有关如何在Firebase中更新文档的文章,但是它对我不起作用。用户可以在他的数据库中添加文档,并且他应该可以更新该条目。这是我现在的代码...

const form = document.querySelector('#database');

form.addEventListener('submit', (e) => {
    e.preventDefault();
    db.collection('database').add({
        field1: form.field1.value,
        field2: form.field2.value 
    });
    db.collection('database').update({
        field2: form.field2.value
    });
})

1 个答案:

答案 0 :(得分:1)

您的add之所以有效,是因为您正在该集合中创建一个新文档。另一方面,当您尝试update时,必须确定要更新的特定文档...更新collection没有意义,您应该确定{{1 }}。

请注意the official docs中提供的示例中通过document在集合中创建新文档的不同之处:

add

通过示例来更新特定文档:

// Add a new document with a generated id.
db.collection("cities").add({
    name: "Tokyo",
    country: "Japan"
})

注意// Set the "capital" field of the city 'DC' db.collection("cities").doc("DC").update({ capital: true }) 如何定位特定文档?那就是你需要做的。我强烈建议您查看the official docs以获得更多示例,它们非常有帮助。

编辑:

要编辑文档,您需要知道它的名称...您可以查询集合以发现名称,也可以使用以下添加新文档的方法来自行设置名称。在此示例中,他们正在创建一个新的“ LA”文档,其名称和状态属性分别为:

update

通过这种方式您可以知道文档的名称。通过使用db.collection("cities").doc("LA").set({ name: "Los Angeles", state: "CA", country: "USA" }) 语法,Firebase将自动生成新文档的名称。