我有一个用户集合,其中每个用户都包含birthday
格式的Timestamp
,所以现在我要查询生日是今天今天的用户,所以我如何只查询用于day
和month
,因为在这种情况下year
没关系。
所以我知道我们只能像这样的日期firestore.collection("user").whereEqualTo("birhtday", todaysDate)
进行搜索,但是我们知道它不会返回任何内容,因为它也会匹配year
那么什么是最好的解决方案?
答案 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");