Firebase RTDB: limitToLast() зависает на неопределенный срок на AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Firebase RTDB: limitToLast() зависает на неопределенный срок на Android

Сообщение Anonymous »

Я недавно обновил Firebase и использую firebase_database: ^12.1.0 в своем приложении Flutter. После обновления моих запросов большинство из них работают правильно, за исключением тех, которые используют limitToLast().
Пример запроса следующий:

Код: Выделить всё

  Stream[*]> cargarDiferenciasStream(String idEmpresa) {
final Query resp = db
.child('PATH')
.orderByChild('fecha')
.limitToLast(40);

return resp.onValue.map((event) {
if (event.snapshot.exists && event.snapshot.value != null) {
final List diferenciaList = [];

for (final child in event.snapshot.children) {
final temp = DiferenciaModel.fromJson(Map.from(child.value as Map));
temp.idDiferencia = child.key;
diferenciaList.add(temp);
}
log('Ok')
return diferenciaList;
} else {
return const [];
}
});
}
Этот запрос отлично работает в симуляторе iOS. Однако при запуске приложения на Android оно просто остается в состоянии загрузки и никогда не получает никаких данных от узла.
Если я удалю limitToLast() и оставлю только orderByChild('fecha') (который правильно индексируется в моих правилах Firebase), запрос работает должным образом, что убедительно свидетельствует о том, что проблема не связана с анализом данных, структурой JSON или моделью. десериализация.
Аналогично, если я заменю orderByChild('fecha') на orderByKey() и удалю limitToLast(), это также будет работать правильно.
Использование limitToLast() важно для меня, поскольку оно позволяет мне получать только самые последние записи вместо перебора всего набора данных, что значительно повышает производительность.
Мои вопросы являются:
  • Является ли limitToLast() устаревшим или проблематичным на Android, требующим другого подхода? Если да, то какую альтернативу рекомендуется использовать?
  • Есть ли другой способ получить самые последние записи без использования limitToLast() и без изменения структуры базы данных?


Подробнее здесь: https://stackoverflow.com/questions/798 ... on-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»