Firebase数据库:如果子对象具有特定值,则检索节点

时间:2018-06-09 03:52:06

标签: swift firebase-realtime-database

我正在使用Firebase在iOS中开发应用。想知道如果子对象具有某个值,我是否可以在节点中获取数据?

例如,下面是我的数据库结构: enter image description here
如果我获取数据,它将获取LEREDrwBDM952MpVtUE节点内的所有数据。但是,我的应用解决方案要求我仅在monitored为假时才显示此节点。如果monitored为真,则不会显示它。

我的代码:

refChilds = Database.database().reference()
    let userId: String = (Auth.auth().currentUser?.uid)!

    //observing the data changes
   refChilds.child("childId").child(userId).child("uid").queryOrdered(byChild: "monitored").queryEqual(toValue: "false").observe(DataEventType.value, with: { (snapshot) in

使用上面的代码,我注意到能够获取任何东西。这是获取数据的正确方法吗?

修改
除了我的问题,我想知道如何才能将monitored的子值从false更新为true?我在访问第二个子节点LEREDrwBDM952MpVtUE时遇到问题。我的代码在TGEcwrz..

下面创建了一个新节点

这是我的代码。

refChild.child("childId").child(userId).updateChildValues(["monitored":monitored!])

1 个答案:

答案 0 :(得分:1)

您的代码中的段uid不在您的JSON中。从我看到的查询应该是:

refChilds.child("childId").child(userId).queryOrdered(byChild: "monitored").queryEqual(toValue: false).observe(DataEventType.value, with: { (snapshot) in
相关问题