繁体   English   中英

带有path和equalTo布尔值的Firebase orderByChild不返回任何内容

[英]Firebase orderByChild with path and equalTo boolean doesn't return anything

好吧,所以我的实时数据库中的数据结构如下所示:

当我运行这样的查询时:

database.ref('access_lists').orderByChild('95577307/read').equalTo(true)

我从查询中什么也没收到。 据我所知,这应该行得通,但是我有点茫然为什么不行。

您在另一个键中有一个键,这就是为什么没有值的原因,如果数字95577307, ...有目的,但不需要成为值,则可以通过更改构造数据的方式将其用作键:

access_lists: {
  95577307: {
    name: 'FelixJar1'
    read: true
    write: true
  }
}

这也将帮助您对具有读/写equalTo(true)的用户进行排序/过滤。 https://firebase.google.com/docs/database/web/structure-data#flatten_data_structures

==========================================

编辑以答复您的问题

这是Firebase的工作方式:

"posts": {
  "ts-functions": {
    "metrics": {       <===== it's the same key name
      "views" : 1200000,
      "likes" : 251000,
      "shares": 1200,
    },
    "title" : "Why you should use TypeScript for writing Cloud Functions",
    "author": "Doug",
  },
  "android-arch-3": {
    "metrics": {       <===== it's the same key name
      "views" : 900000,
      "likes" : 117000,
      "shares": 144,
    },
    "title" : "Using Android Architecture Components with Firebase Realtime Database (Part 3)",
    "author": "Doug",
  }
},

由于它们具有关键字名称metrics因此可以在Firebase规则中为其编制索引,还可以过滤/排序/订购值,例如: metrics/views

另一方面995055869, 950336178....您有995055869, 950336178....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM