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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firebase查询:“where”子句不起作用,继续返回所有文档相关的知识,希望对你有一定的参考价值。

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

答案

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

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

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

另一答案

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

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

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

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

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

以上是关于Firebase查询:“where”子句不起作用,继续返回所有文档的主要内容,如果未能解决你的问题,请参考以下文章

带有 WHERE 子句和 INNER JOIN 的 MySQL 更新查询不起作用

Sql where子句不起作用

用于有序字符串的 postgresql where 子句不起作用

BigQuery 的 WHERE 子句中的 SELECT 语句不起作用

LINQ where 子句中的 async/await 不起作用

基于 Firebase 中多个 where 子句的查询