按子项值进行Cloud Firestore搜索

时间:2018-11-22 13:30:13

标签: javascript firebase google-cloud-firestore google-cloud-functions

我正在使用称为电子邮件ID的键之一在子级中搜索记录,但它始终返回null。下面是我的集合数据库和查询。

enter image description here

exports.authVerfication = functions.https.onRequest((req,res)=>{
if(req.method!=='POST'){
    return res.status(500).json({
        message:'Not allowed'
    });
}

 const p3= db.collection('Users').where('state', '==', 'Kar').get();
 const p2= p3.then(snapshot =>{
    if (!snapshot.exists) {
        res.status(204).send({message:'No users found'});
      } else {
        res.status(200).send(snapshot.data());
      }
    })

1 个答案:

答案 0 :(得分:2)

这样做:

 const p3 = db.collection('Users').where('state', '==', 'Kar').get();
 const p2 = p3.then(snapshot =>{})

您获得的snapshotQuerySnapshot(请参阅doc),并且此类对象没有exists属性。您应该使用empty属性。


如对您的问题(我已删除)的评论中所述,您可以使用以下命令测试查询是否返回结果:

const p3 = db.collection('Users').where('state', '==', 'Kar').get();
const p2 = p3.get()
  .then(snapshot => {
    snapshot.forEach(doc => {
      console.log(doc.id, '=>', doc.data());
    });
  })
  .catch(err => {
    console.log('Error getting documents', err);
  });