【发布时间】:2021-01-29 20:45:47
【问题描述】:
我想向现有文档(集合的最新文档)插入一个对象。
我进行查询,如果文档未满,我将新对象插入到数组中(通过更新文档)。
admin.firestore().collection('LinkPages').orderBy("sequence", "desc").limit(1).get()
.then(function (linkPagesRef) {
linkPagesRef.forEach(function(doc) {
const linkDocument = doc.data();
const sequence = doc.data().sequence;
if(linkDocument.links.length > 19)
{
functions.logger.info("Document full. Need to create one more");
}
else
{
functions.logger.info("Document not full. reuse it : ", linkDocument);
doc.update({ links: admin.firestore.FieldValue.arrayUnion(youtubeData)})
.then(function (docRef) { response.status(200).send("Ok"); })
.catch(function (error) { functions.logger.info("Error adding document: ", error); response.status(500).send("Internal error"); });
}
});
})
.catch(function (error) { functions.logger.info("Error getting LinksPages document: ", error); response.status(500).send("Internal error"); });
但在执行时出现错误:
{"severity":"INFO","message":"Error getting LinksPages document: TypeError: doc.update is not a function\n
Firestore API 似乎并不是真正一致的,并且取决于您获取文档参考的方式,您没有相同的可用功能。
【问题讨论】:
-
我建议保留library documentation 方便检查每种类型/接口提供哪些方法。
标签: firebase google-cloud-firestore google-cloud-functions