java - Firestore按生日日期查询文档,就像只按日和月查询不包括年份?

标签 java android firebase google-cloud-platform google-cloud-firestore

我有用户集合,其中每个用户都包含其生日,归档为时间戳,所以现在我想查询生日为今天的用户,那么我怎样才能只查询daymonth因为在这种情况下year并不重要。
enter image description here

所以我知道的是,我们只能按日期搜索 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/

相关文章:

android - 在 Eclipse 中将现有项目转换为 Android 项目?

android - 如何与 ListView 中的按钮交互

ios - 使用 Firebase async observeSingleEvent 方法的完成处理程序异步初始化类

android - 在哪里可以看到现有应用程序的 Firebase 崩溃报告

Java:设置和获取字符串的方法

Java字符串解析和通过MIDI合成器播放错误

java - 关于链表

Android Fused Location API 在 onLocationChanged 中提供不准确的位置

javascript - 从 Firebase Cloud Function 中的 equalTo 返回空结果

java - 无法使用修饰符 "public final"访问 java.util.HashMap$Entry