我有用户集合,其中每个用户都包含其生日
,归档为时间戳
,所以现在我想查询生日为今天的用户,那么我怎样才能只查询day
和month
因为在这种情况下year
并不重要。
所以我知道的是,我们只能按日期搜索 firestore.collection("user").whereEqualTo("birhtday", TodaysDate)
,但据我们所知,它不会返回任何内容,因为它也将匹配 year
那么这里最好的解决方案是什么?
最佳答案
由于将 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");
关于java - Firestore按生日日期查询文档,就像只按日和月查询不包括年份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58518315/