Для фильтрации времени, что я могу сделать в базе данных реального времени Firebase? - PullRequest
0 голосов
/ 17 октября 2019

Я хотел непрерывно получать данные из базы данных Firebase в течение последних 10 минут, когда я отправляю данные в базу данных Firebase в реальном времени. Я пробовал много способов, но это не сработало.

Запрос

query=database.getReference("handler").child("first").orderByChild("time").startAt(start).endAt(finish);query.addValueEventListener(new ValueEventListener()...

1 Ответ

0 голосов
/ 18 октября 2019

Вы можете начать с «10 минут назад», рассчитанного при создании запроса, и поддерживать свой собственный таймер (таймеры) для реализации логики «только последние 10 минут» вашего приложения.

Например, если вы получаете ребенка в возрасте 8 минут, добавьте таймер, чтобы «забыть» этого ребенка через 2 минуты. Если ребенок уже получил вас более 10 минут (если ваш запрос выполнялся какое-то время, вы все равно будете получать детей более старшего возраста, если они будут записаны в базу данных позже), просто проигнорируйте его.

Если производительность не является проблемой, вы можете просто запускать проверку каждые несколько секунд, чтобы удалить все элементы, возраст которых превышает 10 минут.

Возможно, вам будет проще это сделать с ребенкомпрослушиватели событий вместо значений прослушивателей событий (чтобы старые дети не давались вам повторно при каждом изменении).

Если вы планируете поддерживать запрос активным в течение длительного периода времени, возможно, вы захотите перезапустить его, чтобы перестать принимать гораздо более старших детей.

Если у вас есть доступ к облачным функциям проекта, плюс вам не нужно много точности, плюс путь, с которого вы читаете, является общим для всех ваших пользователей,Вы могли бы попробовать что-то еще: Запланируйте функцию облака (каждые 1 или 2 минуты), чтобы поддерживать другой путь, который будет иметь только те элементы,Примерно до 10 минут, и клиенты Android читают по этому пути.

Документы для функций планирования: https://firebase.google.com/docs/functions/schedule-functions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...