Запросы Firebase не имеют оператора OR
или IN
. Таким образом, вы не можете легко сопоставить вышеуказанный запрос с Firebase.
Одним из способов решения этой задачи было бы реализовать функцию, которая просто циклически перебирает элементы:
function loadThese(ids, callback) {
var rows = [];
while (ids.length > 0) {
var id = ids.splice(0,1)[0];
refToTable.child(id).once('value', function(snapshot) {
rows.push(snapshot.val());
});
}
callback(rows);
}
Обратите внимание, что вышеприведенное должно быть рекурсивный, поэтому используйте его для вдохновения, а не как код для копирования / вставки.
Другой (и, вероятно, лучший способ) решить эту проблему - выяснить, почему эти три строки выбраны и почему не другие. У этих строк, вероятно, есть что-то общее. Как только вы узнаете о том, что у у них есть общее, вы можете моделировать это в структуре данных.
Update (20160408): для хорошего объяснения, почему приведенное выше намного быстрее Firebase, как вы могли бы ожидать, см. этот ответ .