我有一个集合lots
,其中包含许多由firebase生成的文档,这些文档中包含objects
个
//lot Document
{
attr1: {
subattr1 : "some value",
...
},
attr2: {
subattr1 : "some value",
...
},
user: {
id : "some uid value xAsDFadfaWRDAFd",
...
}
所以在我的火力基地我有
//my collection
xAsDFadfaWRDAFd-loot1
xAsDFadfaWRDAFd-loot2
xAsDFadfaWRDAFd-loot3
现在我只想通过user id property
过滤收藏品。
我试过了
firebase.collection('lots').where('user.id','==',uid).get().then(do Something if i find them);
但它找不到任何内容,如果我从.where('user.id','==',uid)
中检索集合中的所有文档,将来我可能希望过滤文档中的其他属性,我该怎么办呢?
答案 0 :(得分:2)
您在then()
子句中未显示的代码可能是错误的。我在控制台中设置数据并成功运行代码:
以下是代码:
db.collection("lots").where("user.id","==","ABCDE").get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
// doc.data() is never undefined for query doc snapshots
console.log(doc.id, " => ", doc.data());
});
})
.catch(function(error) {
console.log("Error getting documents: ", error);
});
如果then()
子句中的代码实际上是正确的,那么请考虑检查user
和id
是否大写相同,uid
包含您期望的数据(一种方法是对从控制台中的文档复制/粘贴的值进行硬编码。