这是一个javascript
函数,打算对FireStore
执行更新,该更新不起作用。
如果任何人都能看到代码中的问题,我会感到非常高兴。
function makeUpdate(key,name) {
let theCollection = db.collection("InformationList"),
infoUnit = theCollection.doc(key).get().then(function(doc) {
if (doc.exists) {
console.log("infoUnit -name-:" + doc.get("name"));
console.log("infoUnit -telephone-:" + doc.get("telephone"));
let updateDico = {};
updateDico["name"] = name;
doc.update(updateDico);
} else {
console.log("embassyUpdate --> No such document!");
}
}).catch(err => {
console.log("Error getting documents (in makeUpdate)", err);
});
}
除了不执行预期的更新外,它还会在日志中打印三则消息:
从中我可以看到在数据库中找到了一条符合预期的记录。但同时发生未知错误。
答案 0 :(得分:1)
update()
(DocumentSnapshot对象)上没有doc
方法。 DocumentSnapshot仅包含从get()
读取的数据。如果要将数据写回到文档中,则需要使用DocumentReference对象,可能与调用theCollection.doc(key)
时得到的对象相同。
答案 1 :(得分:1)
没有称为update()
的方法,您可以在doc
DataSnapshot对象本身上调用该方法。
您必须对从set()
获得的Document Reference使用doc.ref
方法来更新引用。
答案 2 :(得分:0)
这就是我更新数据的方式。
await db
.collection('collectionName')
.doc('documentId')
.update({
name: "Updated Name",
telephone: "0000000000"
});
您需要知道文档ID,您可以像这样更新您的值。