2017-01-13 12 views
0

Firebase данныхВложенный ключевой запрос в Firebase? Структура

{ 
    "books": { 
    "-KaKjMMw-WQltqxrGEmj": { 
     "categories": { 
     "cat1": true, 
     "cat2": true 
     }, 
     "author": "user1", 
     "title": "event1" 
    }, 
    "-KaKjMMw-WQltqxrGEmk": { 
     "categories": { 
     "cat1": true, 
     "cat2": false 
     }, 
     "author": "user1", 
     "title": "event2" 
    } 
    } 
} 

запросов Чтобы найти все книги определенного автора

FNode.testNode.child("books") 
    .queryOrderedByChild("author") 
    .queryEqualToValue("user1") 
    .observeEventType(.Value) { (snapshot) in 
    print(snapshot) 
} 

Вопрос:

Я хочу, чтобы найти все книги принадлежащие до cat1. Не удалось найти запрос для этого.

+0

Извините, обновил структуру данных! Немного измените, чтобы скрыть мои исходные цели с помощью смены ключей. Сбой плохо. Виноват ! : D –

ответ

1

После большого количества ударов и испытаний, наконец, получил свой ответ.

Для вышеуказанной структуры. Если вы хотите, чтобы найти все книги принадлежащие cat1 Вот запрос для этого:

FNode.testNode.child("books") 
    .queryOrderedByChild("categories/cat1").queryEqualToValue(true) 
    .observeEventType(.Value) { (snapshot) in 
    print(snapshot) 
} 

Примечание: FNode.testNode может быть любой узел типа FIRDatabaseReference

Команде Firebase: Можете ли вы включить образец всех возможных запросов в базу данных в структуры данных и разместить его вместе с документами firebase. Сейчас это для нас сейчас хит-парад.

+1

Это работает, но это означает, что вам нужно [определить индекс в правилах безопасности Firebase] (https://firebase.google.com/docs/database/security/indexing-data) для каждой категории. Для получения более удобного решения см. Мой ответ здесь: http://stackoverflow.com/questions/40656589/firebase-query-if-child-of-child-contains-a-value –

+0

Уверенный, чем x для ссылки. –

+0

В чем же заключается недостаток запроса без добавления индексов в правила базы данных? Будет ли это действительно медленным? –

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

  • Нет связанных вопросов^_^