android - 在 Firebase 数据库中保存日期

标签 android firebase firebase-realtime-database

在我的 Android 应用程序中根据日期对一些数据进行排序。它存储如下:

Map<Year, Map<Month, Map<Day, Stuff>>>

年、月、日只包含整数。这无法保存到 Firebase 数据库,因为它是一个具有非字符串键的 map 。我考虑将其展平并将其变成 Map。对数据结构的巨大妥协,因为它允许前一个不允许(也不应该)允许的数据。但是,Date 也不是字符串。我试过这样的事情:

String key = String.valueOf(date.getTime());

然后使用数据结构:

Map<String, Stuff>

也不起作用,它似乎使用了字符串在 Firebase 数据库中不能包含的一些非法字符。那么,我将如何着手完成这项工作?非常感谢帮助。

最佳答案

我建议您创建一个如下所示的结构:

...
date:{
   day:1,
   month:04,
   year:2016,
   timestamp:12345679979 //in milliseconds
}

通过这种方式,您可以轻松地将时间戳编入安全规则,通过 Child 进行查询并使用 start At 和 endAt 方法使用过滤器,您可以在其中定义定义范围的时间戳

关于android - 在 Firebase 数据库中保存日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39572668/

相关文章:

android - 成功生成签名的 Apk,但是当我尝试运行我的项目时,出现错误

java - Android Facebook 登录弹出对话框

android - 无法将 admob 与 firebase iOS/Android 项目链接

java - 将裁剪后的照片保存到 FirebaseStorage 时应用崩溃

javascript - 如何使用 javaScript 从实时数据库、Firebase 函数中的所有 randomId 中获取特定键值

android - 我应该如何在 Android 异常后重新启动/重试 Kotlin 协程

ios - 在 iOS 模拟器中从 firebase 推送通知

android - Gradle 必须依赖 com.google.firebase :firebase-core for Firebase services to work as intended

android - 使用Firebase实时数据库

javascript - 多个邮件附件 - PhoneGap