Firebase 查找具有特定属性的用户?

Firebase 查找具有特定属性的用户?,firebase,Firebase,根据此模式,如何查找订阅了服务的用户?您可以执行以下操作: users | |_ john_doe199 | | | |_ subscriptions | | | |__ service_id1 : true | |_ jane_doe123 | |_ subscriptions | |__ service_id1 : true |__ service_id2 : true let ref=Firebase(url:https://

根据此模式,如何查找订阅了
服务的用户?
您可以执行以下操作:

users
|
|_ john_doe199
|  |
|  |_ subscriptions
|    |
|    |__ service_id1 : true
|
|_ jane_doe123
   |
   |_ subscriptions
     |
     |__ service_id1 : true
     |__ service_id2 : true  
let ref=Firebase(url:https://.firebaseio.com/users")
参考queryOrderedByChild(“订阅/服务\u id1”)
.observeEventType(.ChildAdded,带块:{中的快照
如果let subscribed=snapshot.childSnapshotForPath(“订阅/服务\u id1”)
.价值为?布尔{
打印(“\(snapshot.key)已订阅服务\u id1:\(订阅)”)
}
})

这是Eirik答案的另一种选择

let ref = Firebase(url: "https://<your_app>.firebaseio.com/users")
ref.queryOrderedByChild("subscriptions/service_id1")
   .observeEventType(.ChildAdded, withBlock: { snapshot in
    if let subscribed = snapshot.childSnapshotForPath("subscriptions/service_id1")
                        .value as? Bool {
        print("\(snapshot.key) is subscribed to service_id1: \(subscribed)")
    }
})

这就是所谓的

使用深度查询:。这很直截了当。@Jay用一段代码作为回答,我会接受:)
usersRef.queryOrderedByChild("subscriptions/service_id1").queryEqualToValue(true)
        .observeSingleEventOfType(.Value, withBlock: { snapshot in
    print(snapshot)
})