Связать файлы с датами для запроса определенного диапазона дат, Java (Android)? - PullRequest
0 голосов
/ 22 января 2019

Я сохраняю свои данные в файлах (Google Firebase.Firestore), которым при создании присваивается дата в виде идентификатора. Файлы помещаются в коллекцию «События». Структура выглядит так:

Document 14-Jan-2019
ID: 1547504172
pr: "true"
po: "false"

Document 17-Jan-2019
ID: 1547763372
pr: "false"

...

Document 20-Jan-2019
ID: 1548025154
pr: "true"

Document 21-Jan-2019
ID: 1548107873
pr: "true"

идентификаторы создаются следующим образом:

long ID = (long) Date().getTime()/1000

Существует еще одна коллекция под названием "Habits", которая содержит объекты HabitInfo.

Document pr (object HabitInfo)
name: "pr"
startDay: 1547504172 //14-Jan-2019
points: 12 ...

Каждый объект имеет параметр startDay, который указывает начало наблюдаемой недели.

Я хотел бы получить все файлы, даты создания которых (в виде длинных чисел) меньше, чем семь дней после моего startDay. Время дня не имеет значения, только дата.

Я пытался сделать что-то вроде этого:

CollectionReference colRef = db.collection("events");
Query query = colRef.whereGreaterThanOrEqualTo("ID", hInfo.startDay)
                    .whereLessThan("ID", hInfo.startDay + 7*24*60*60);

Проблема в том, что разница во времени между двумя моими идентификаторами может превышать 7 дней (в секундах), поскольку они записываются в разное время дня. Например, понедельник 14-го в 7 утра. и понедельник 21-го в 3 часа дня более семи дней, если смотреть на значения в секундах.

Как получить диапазон, учитывающий только даты?

...