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

javascript - 按子项值进行Cloud Firestore搜索-LMLPHP

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());
      }
    })

最佳答案

通过做:

 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);
  });

09-17 17:41