У меня есть firebase узел следующим образом -Firebase извлечения данных с помощью ключа
providers
-userid1
--userid : userid1
--keywords
---key1 : true
---key2 : true
---key3 : true
-userid2
--userid : userid2
--keywords
---key1 : true
---key4 : true
---key5 : true
Я хочу, чтобы получить все UserIds, которые имеют «key1» в их ключевых слов ребенка.
Я попробовал следующий запрос
var ref = new Firebase(url+"/providers")
ref.orderByChild("keywords").equalTo("key1").on("value", function(snapshot){
console.log(snapshot.numChildren());
})
Также попробовал -
var ref = new Firebase(url+"/providers")
ref.orderByKey().equalTo("key1").on("value", function(snapshot){
console.log(snapshot.numChildren());
})
Я не получить никаких результатов. Что мне не хватает в запросе? Как эти два вопроса отличаются друг от друга? Оба запроса не работают.
Спасибо, Frank. Отличный ответ, я все еще немного расплывчатый по индексированию. Этот запрос работал для меня ref.orderByChild ("key1"). On ("value", function (s) { console.log (s.val()); }); Да, вы правы, я, вероятно, могу поддерживать инвертированный индекс. – Nikhil
Интересное решение. Но при запуске данных у вас возникнут проблемы. Или иначе, поскольку приложение получает больше пользователей (и запрос становится медленнее). Денормализация - это путь: потратьте некоторое время на чтение статей, которые я связал, и экспериментируйте с тем, что нужно делать на практике. –