2016-05-13 6 views
1
users 
| 
|_ john_doe199 
| | 
| |_ subscriptions 
| | 
| |__ service_id1 : true 
| 
|_ jane_doe123 
    | 
    |_ subscriptions 
    | 
    |__ service_id1 : true 
    |__ service_id2 : true 

С учетом этой схемы, как мне найти пользователей, подписавшихся на service_id1?Найти пользователей с определенным свойством?

+0

Используйте глубокий запрос: [Firebase Deep Query ] (https://www.firebase.com/blog/2015-09-24-atomic-writes-and-more.html). Его довольно прямолинейно. – Jay

+0

@Jay Опубликовать это как ответ с фрагментом кода, и я соглашусь :) –

ответ

1

Вы можете сделать что-то вроде этого:

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)") 
    } 
}) 
2

Это альтернатива ответ Эйрик в

usersRef.queryOrderedByChild("subscriptions/service_id1").queryEqualToValue(true) 
     .observeSingleEventOfType(.Value, withBlock: { snapshot in 
    print(snapshot) 
}) 

И это называется Firebase Deep Query

Смежные вопросы