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

问题描述 投票:0回答:2

使用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

javascript angular firebase google-cloud-firestore
2个回答
1
投票

通常你定义一个指向文档或集合的ref,你可以添加一个.where。你在裁判上发射.get。 ...改写它说

var ref = [whatever SDK/homepath].firestore.collection('members).where('id', '==', "1112");

然后把那个裁判传给你的.get。并注意您似乎将数字存储为字符串,可能会对查询产生负面影响/甩掉。


0
投票

您正在接受查询,然后询问其ref,它返回您创建查询的集合。这意味着您在整个集合上调用get,它返回所有文档。

要仅获取与查询中的条件匹配的文档,请直接在查询上调用get。所以:

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

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

ref.where('id', '==', "1112").get().then(doc => {
  ...
© www.soinside.com 2019 - 2024. All rights reserved.