Выполнение запросов ServerSide с Flutter и Firebase RTB - PullRequest
0 голосов
/ 04 января 2019

У меня есть список объектов в базе данных Firebase RealTime, имеющий следующую форму:

-Places: 
    -BO-1232
         -lat: 23.000
         -lng: 45.000
    -EN-12323
         -lat: 23.000
         -lng: 45.000
    -FR-2323
         -lat: 23.000
         -lng: 45.000

И мне нужно запросить все элементы с именем BO, чтобы получить их параметры lat и lng: так,в этом случае я бы получил только первый.То, как я это сделал, я получил все дочерние элементы Places, а затем отфильтровал их после загрузки в Flutter.Проблема с этим методом заключается в том, что существует множество элементов и их загрузка:

  • занимает время
  • весов на устройстве, которое использует пользователь.
  • в настоящее времядостигнет предела загрузки бесплатной учетной записи firebase (1 ГБ)

Так есть ли способ выполнить операцию фильтрации на стороне сервера, а не на устройстве во флаттере?Если это невозможно или гораздо лучше сделать с Firestore, я мог бы использовать Firestore, но я бы предпочел базу данных в реальном времени.

1 Ответ

0 голосов
/ 04 января 2019

Если вы ищете все дочерние узлы, чей идентификатор начинается с -BO, вы можете использовать запросы Firebase для определения порядка по ключу, а затем фильтровать по элементам, которые начинаются с -BO.

В флаттере:

final ref = FirebaseDatabase.instance.reference().child("Places");
final query = ref.orderByKey().startAt("-BO").endAt("-BO\UF7FF");
query.onChildAdded.listen((event) {
  print(event.snapshot.key);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...