我正在尝试编写一个http云函数,该函数触发查询以搜索价格超过100美元的商品,但它总是返回空文档或文档不存在。
现在规则设置为跳过验证,因此我无需进行身份验证。
我在这里错过了什么吗?
我是firestore / firebase的新手。
Collection/Document image here
export const queryForData = functions.https.onRequest((request, response) => {
db.collection('Inventories').where('price','>=',100).get()
.then(snapshot => {
if(snapshot.exists){
const data = snapshot.data();
response.send(data);
}else{
response.send("No docs found!")
}
})
.catch(error => {
console.log(error);
response.status(500).send(error);
});
});
这让我“找不到文档!”
答案 0 :(得分:4)
您的代码中的快照是QuerySnapshot,并且没有exists属性或data()方法。看起来你把它与QueryDocumentSnapshot混淆了, 有一个exists属性和data()方法。
所以你想要做这样的事情:
.then(snapshot => {
if (!snapshot.empty) {
for (let i = 0; i < snapshot.size; i++) {
const data = snapshot.docs[i].data();
response.send(data);
}
} else response.send('No docs found!')
}