firebase, эквивалентная sql, где в ()
Мне нужен запрос firebase, эквивалентный этому запросу в SQL:
select * from your_table where id in (123, 345, 679)
Как бы вы сделали эту логику в firebase?
спасибо,
- Android-устройство logcat продолжает работать
- Дизайн запросов базы данных Firebase
- База данных базы данных Firebase запрашивает пользователей в цикле
- Запрос базы данных Firebase real_time не работает
- Как читать текстовый файл из Firebase в Android-приложение
- recyclerview onClick getkey из firebase
- Выполнение Android не выполнено для задачи app.compileDebugKotlin, когда используется firebase
- Как использовать функцию «val ()» в Котлине? / расширить внешние классы JS
- Войти в firebase в студии kotlin android
- Robolectric addResolveInfoForIntent не работает
- Firebase: чистый способ использования полей enum в Kotlin / Java?
- «Невозможно преобразовать объект типа java.lang.String в тип com.android.projectrc.Listing» при использовании Firebase RecyclerAdapter
- Android Firebase auth: класс дескриптора локального модуля для com.google.android.gms.crash и com.google.firebase.auth не найден
В запросах 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); }
Обратите внимание, что вышеупомянутое должно быть, вероятно, рекурсивным, поэтому используйте его для вдохновения, а не как код для копирования / вставки.
Другой (и, вероятно, лучший способ) решить эту проблему – выяснить, почему эти три строки выбраны и почему не другие. У этих строк, вероятно, есть что-то общее. Когда вы знаете, что у них общего, вы можете моделировать это в структуре данных.
Обновление (20160408): для хорошего объяснения, почему приведенное выше намного быстрее на Firebase, чем вы могли ожидать, см. Этот ответ .