如何获取过滤文件firebase

时间:2018-05-04 22:34:53

标签: javascript firebase google-cloud-firestore

我有一个集合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)中检索集合中的所有文档,将来我可能希望过滤文档中的其他属性,我该怎么办呢?

1 个答案:

答案 0 :(得分:2)

您在then()子句中未显示的代码可能是错误的。我在控制台中设置数据并成功运行代码:

Image of the Firebase Console with code on the left, and data on the right

以下是代码:

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()子句中的代码实际上是正确的,那么请考虑检查userid是否大写相同,uid包含您期望的数据(一种方法是对从控制台中的文档复制/粘贴的值进行硬编码。