Firebase查询:“ where”子句不起作用,继续返回所有文档

时间:2018-08-11 22:15:16

标签: javascript angular firebase google-cloud-firestore

正在使用id == "1112"提取成员,但该成员不起作用

var query = this.afs.collection('members', ref => ref.where('id', '==', "1112"))

query.ref.get().then(doc => {
   doc.forEach(postDoc => {
     console.log(postDoc.data());
   });
})

Firestore Result

2 个答案:

答案 0 :(得分:1)

通常,您定义一个指向文档或集合的employee.user,并且可以添加一个ref。您在参考上开.where。 ...改写为

.get

然后将该引用传递给您的var ref = [whatever SDK/homepath].firestore.collection('members).where('id', '==', "1112");。和注意,您似乎将数字存储为字符串,这可能会对查询产生负面影响。

答案 1 :(得分:0)

您要查询,然后要求其ref,该查询将返回您在其上创建查询的集合。这意味着您要在整个集合上调用get,这将返回所有文档。

要只获取符合查询条件的文档,请直接在查询中调用get。所以:

query.get().then(doc => {
  ...

或者,您可以绕过AngularFire2,因为在这种情况下它没有任何好处。这意味着您最终会:

ref.where('id', '==', "1112").get().then(doc => {
  ...