我正在使用称为电子邮件ID的键之一在子级中搜索记录,但它始终返回null。下面是我的集合数据库和查询。
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());
}
})
答案 0 :(得分:2)
这样做:
const p3 = db.collection('Users').where('state', '==', 'Kar').get();
const p2 = p3.then(snapshot =>{})
您获得的snapshot
是QuerySnapshot
(请参阅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);
});