android - Android Firebase RealtimeDatabase 日期作为日期对象
问题描述
我想将我的 Android 应用程序中的日期作为日期对象保存到 Firebase 实时数据库。
我已经尝试过:
System.currentTimeMillis() / 1000L
显示了这个
new Date(System.currentTimeMillis() / 1000L)
显示了这个
它必须如图所示存储。有任何想法吗?谢谢你的时间。
解决方案
实时数据库没有日期类型值。它仅支持 JSON 也支持的值类型。这意味着您应该将时间戳存储为整数。通常使用System.currentTimeMillis()
表示形式(如您所展示的那样不除以 1000),因为这也是ServerValue.TIMESTAMP的工作方式,以及安全规则在内部表示当前时间的方式。
请注意,这与 Cloud Firestore 不同,后者确实具有原生时间戳字段类型。
您在最后一个屏幕截图中显示的只是格式化的字符串日期。我不建议在数据库中使用它,因为格式化的字符串很难以您期望的方式进行比较。您应该改为在客户端上格式化字符串,使用设备对用户区域设置的首选日期格式。
如果您必须存储格式化的字符串日期,那么您必须自己执行此操作,可能使用Android 提供的选项之一。
推荐阅读
- java - 在具有重复项的排序列表中查找第一次出现的整数
- typescript - Typescript - 延迟指定泛型类型直到调用函数
- c# - Calling PHP class in C#
- mysql - read Statement not working in Linux script
- javascript - 如何在传单 React 中查找纬度/经度属性
- php - echo session variable on ajax post call
- javascript - React Native AWS Amplify AuthError : Amplify has not been configured correctly
- angular - sharing data between two routes angular
- android - Kodien 在编译时是否经过验证?
- javascript - 静音不适用于动态创建的视频