查询未知父Firebase的子快照

时间:2019-07-18 09:33:33

标签: swift firebase firebase-realtime-database

我正在尝试使用未知父代的childKey来获取子快照,而无需更改数据结构。

我尝试将queryOrderByChildIdqueryEqual(toValue:, childKey:)一起使用,但是我的问题是子快照是字典,并且我只知道键,而不知道值。

是否有任何方法可以将值操纵为Any值,以便能够获得子快照。

我知道title / id1,id3和id3的时间戳

数据结构:

title:
    id1:
         id2:
              id3:
                   timestamp: 101010101
                   visible: true

代码:

ref.child("title").child(id1).queryOrderedByKey().queryEqual(toValue: _, childKey: id3)
   .observeSingleEvent(of: .value) { (snapshot) in
      print(snapshot)
}

输出值为空

编辑:

最后,我这样解决了它:

ref.child("title").child("id1").queryOrdered(byChild: "id3/timestamp").queryEqual(toValue: 101010101).observeSingleEvent(of: .value) { (snapshot) in
       print("id2 is: ", (snapshot.value as? [String: Any])?.keys.first)
}

1 个答案:

答案 0 :(得分:0)

Firebase数据库查询在运行查询的位置的直接子节点上工作。整个路径中只有一个未知键:您所查询的节点正下方的节点。

因此,如果您知道路径的title/id1部分,则可以根据节点id2在该路径下的已知路径下的键,值或属性(例如{{1 }}。

如果知道date/month,则可以查询title/id1/id2级别的节点。但是,如果您只知道其路径的id3部分,则无法查询它们。

另请参阅: