Firestore按生日日期查询文档,就像仅按日期和月份查询排除年份?

时间:2019-10-23 08:08:46

标签: java android firebase google-cloud-firestore

我有一个用户集合,其中每个用户都包含birthday格式的Timestamp,所以现在我要查询生日是今天今天的用户,所以我如何只查询用于daymonth,因为在这种情况下year没关系。
enter image description here

所以我知道我们只能像这样的日期firestore.collection("user").whereEqualTo("birhtday", todaysDate)进行搜索,但是我们知道它不会返回任何内容,因为它也会匹配year

那么什么是最好的解决方案?

1 个答案:

答案 0 :(得分:2)

由于将Date对象作为第二个参数传递给以下查询:

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

返回今天有生日的所有用户,则需要添加新属性。在此新属性中,您可以简单地以字符串格式将日期存储为日和月:

shortBirhtday: "09-Jun"

然后使用以下方法查询数据库

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

此查询将无法返回所有生日为6月9日(无论年份如何)的用户。

编辑:

根据@DougStevenson的评论,更合适的存储日期的方式应该是:

09-06

09代表一天,06代表月份。这是对应的查询:

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