FirebaseDatabase Query - Фильтр, где дата выше, чем сейчас - PullRequest
0 голосов
/ 08 марта 2020

У меня есть несколько элементов Firebase Event, которые хранят дату и время как Epoch.

Что бы я хотел сделать, я получил текущее время и затем отфильтровал результаты, которых еще не было. В настоящее время я просто заказываю по дате / времени

Так как мне добавить к этому условие, чтобы «время-дата» превышало «время»

long time = System.currentTimeMillis();

    Query query = FirebaseDatabase.getInstance()
            .getReference()
            .child("Events").orderByChild("datetime");

JSON

  "date" : "Sat 7th March",
  "datetime" : 1583618400,

1 Ответ

1 голос
/ 09 марта 2020

Запросы к базе данных Firebase Realtime выполняются в два этапа:

  1. Вы размещаете дочерние узлы в расположении с данным свойством (orderByChild), значение (orderByValue) или их ключ (orderByKey).

  2. Вы сообщаете базе данных, какой срез дочерних узлов нужно вернуть, используя startAt(), endAt(), equalTo(), limitToFirst() и limitToLast().

В вашем случае вам понадобится startAt() с чем-то вроде:

long time = System.currentTimeMillis();

Query query = FirebaseDatabase.getInstance()
        .getReference()
        .child("Events")
        .orderByChild("datetime");
        .startAt(time + 1)

time + 1 здесь гарантирует, что результаты возвращаются после текущего времени.

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