在firebase-realtime-database中进行查询

时间:2019-07-18 11:34:31

标签: python firebase firebase-realtime-database firebase-admin

我的firebase-realtime-database中具有以下结构:

- child_n
  - child_n_1
   - $id_child_n_1
    - $subid_child_n_1
     - dates
      * 20180102: true
      * 20181102: true
      * 20181120: true
   - $id_child_n_2
    - $subid_child_n_2
     - dates
      * 20181103: true
      * 20181105: true
      * 20181204: true

我需要在子日期下查询并返回那些包含特定范围内日期的对象(id_child的)。

我已经尝试过类似的事情:

query = db.reference(..).child(child_n/child_n_1).order_by_child(dates).start_at('specific_date').end_at('specific_date').get() not working, and return 0 objects!

我使用了“ .indexOn”:

"database_id":  {
      "child_n": {
        "child_n_1": {
          ".indexOn": ["dates_subid_child_n_1"]
        }
      }
    },

query = db.reference(..).child(child_n/child_n_1).order_by_child(dates).end_at('specific_date').get() working but return all objects.

任何想法如何执行此查询?

1 个答案:

答案 0 :(得分:0)

您快到了。使用order_by_child时,节点按该子属性的值排序。在这种情况下,您要按每个子节点的key进行排序,这与order_by_key相同:

db.reference(..).child(child_n/child_n_1/dates).order_by_key().start_at('specific_date').end_at('specific_date').get()