Firestore запросов документов по дате рождения, как только запрос по дню и месяцу, исключая год? - PullRequest
0 голосов
/ 23 октября 2019

У меня есть коллекция пользователей, где у каждого пользователя есть birthday, поданный как Timestamp, поэтому теперь я хочу запрашивать пользователей, чей день рождения сегодня , так как я могу запросить только для day иmonth потому что в этом случае year не имеет значения.
enter image description here

Итак, я знаю, что мы можем искать только по дате, например firestore.collection("user").whereEqualTo("birhtday", todaysDate),но, как мы знаем, он ничего не вернет, потому что он также будет соответствовать year

Так что будет лучшим решением здесь?

1 Ответ

2 голосов
/ 23 октября 2019

Поскольку объект Date передается в качестве второго аргумента в следующий запрос:

firestore.collection("user").whereEqualTo("birhtday", todaysDate);

Возвращает всех пользователей, у которых сегодня день рождения, требуется добавление нового свойства. В этом новом свойстве вы можете просто сохранить дату как день и месяц в строковом формате:

shortBirhtday: "09-Jun"

, а затем выполнить запрос к базе данных, используя:

firestore.collection("user").whereEqualTo("shortBirhtday", "09-Jun");

Этот запрос вернет всех пользователейу которого день рождения 9 июня, независимо от года.

Редактировать:

Согласно комментарию @DougStevenson, более подходящим способом хранения даты должно быть:

09-06

Где 09 обозначает день, а 06 обозначает месяц. И это соответствующий запрос:

firestore.collection("user").whereEqualTo("shortBirhtday", "09-06");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...