首页 > 解决方案 > Android Firebase RealtimeDatabase 日期作为日期对象

问题描述

我想将我的 Android 应用程序中的日期作为日期对象保存到 Firebase 实时数据库。

我已经尝试过:

System.currentTimeMillis() / 1000L显示了这个

new Date(System.currentTimeMillis() / 1000L)显示了这个

它必须如图所示存储。有任何想法吗?谢谢你的时间。

标签: androidfirebasedatefirebase-realtime-database

解决方案


实时数据库没有日期类型值。它仅支持 JSON 也支持的值类型。这意味着您应该将时间戳存储为整数。通常使用System.currentTimeMillis()表示形式(如您所展示的那样不除以 1000),因为这也是ServerValue.TIMESTAMP的工作方式,以及安全规则在内部表示当前时间的方式。

请注意,这与 Cloud Firestore 不同,后者确实具有原生时间戳字段类型。

您在最后一个屏幕截图中显示的只是格式化的字符串日期。我不建议在数据库中使用它,因为格式化的字符串很难以您期望的方式进行比较。您应该改为在客户端上格式化字符串,使用设备对用户区域设置的首选日期格式。

如果您必须存储格式化的字符串日期,那么您必须自己执行此操作,可能使用Android 提供的选项之一


推荐阅读