查询数据库的Firestore云功能:文档不存在

时间:2018-05-12 06:25:07

标签: node.js typescript firebase google-cloud-firestore google-cloud-functions

我正在尝试编写一个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);
    });
});

这让我“找不到文档!”

1 个答案:

答案 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!')
}