Javascript Firebase云函数检查数据库中是否存在不存在的数据
我正在寻找如何检查我的云函数中是否存在文档 我下面的函数在增加现有值时可以正常工作,但现在我尝试添加功能,检查前一个值是否存在,是否设置为1 我尝试了不同的方法,但得到了“snapshot.exists”或“TypeError:无法读取docRef.get.then.snapshot处未定义的属性‘count’”Javascript Firebase云函数检查数据库中是否存在不存在的数据,javascript,node.js,firebase,google-cloud-functions,google-cloud-firestore,Javascript,Node.js,Firebase,Google Cloud Functions,Google Cloud Firestore,我正在寻找如何检查我的云函数中是否存在文档 我下面的函数在增加现有值时可以正常工作,但现在我尝试添加功能,检查前一个值是否存在,是否设置为1 我尝试了不同的方法,但得到了“snapshot.exists”或“TypeError:无法读取docRef.get.then.snapshot处未定义的属性‘count’” var getDoc = docRef.get() .then(snapshot => { if (typeof snapshot._f
var getDoc = docRef.get()
.then(snapshot => {
if (typeof snapshot._fieldsProto.count !== undefined) {
console.log("haha3", snapshot._fieldsProto.count)
var count = Number(jsonParser(snapshot._fieldsProto.count, "integerValue"));
docRef.set({
count: count + 1
});
}
else {
docRef.set({
count: 1
});
}
});
下面是exists()错误的代码
此代码的错误是:
TypeError:snapshot.exists不是docRef.get.then.snapshot上的函数
var getDoc = docRef.get()
.then(snapshot => {
if (typeof snapshot._fieldsProto.count !== undefined) {
console.log("haha3", snapshot._fieldsProto.count)
var count = Number(jsonParser(snapshot._fieldsProto.count, "integerValue"));
docRef.set({
count: count + 1
});
}
else {
docRef.set({
count: 1
});
}
});
似乎
docRef
指向一个集合或是一个查询。在这种情况下,snapshot
的类型是QuerySnapshot
要检查查询是否有任何结果,请使用。我不断收到错误消息,说空函数或存在函数不是函数(尝试了多次迭代),因此最终我只使用了一个未定义的检查,结果非常理想
var db = event.data.ref.firestore;
var docRef = db.collection(userID).doc("joined").collection("total").doc("count");
var getDoc = docRef.get()
.then(snapshot => {
console.log("augu1", snapshot)
if (snapshot._fieldsProto === undefined) {
console.log("digimon1")
docRef.set({
count: 1
});
}
else {
console.log("haha31", snapshot._fieldsProto.count)
var count = Number(jsonParser(snapshot._fieldsProto.count, "integerValue"));
docRef.set({
count: count + 1
});
}
});
事实证明,问题比我想象的要简单得多:
DocumentSnapshot.exists
是只读属性,而不是函数。因此正确的使用方法是:
if snapshot.exists()
检查快照调用时是否存在文档。如果这对您不起作用,请显示确切的错误消息和。刚刚添加了存在错误的代码,该代码的错误是什么?TypeError:snapshot.exists不是docRef.get.then.snapshot的函数
docRef
指向什么?如果是查询或集合,y你得到了一个QuerySnapshot
,所以你需要检查!QuerySnapshot.empty
谢谢你的帮助,我仍然得到empty不是一个函数(在它存在之前不是),但我可以用一个未定义的检查来检查它。我将该代码作为另一个答案发布,如果有任何关于它的信息值得你关注,请随时告诉我