在 Firebase 数据库中保存 LocalDate (Java.time) 对象

2024-07-01

我有一堂课(比如说Class A)其中有一个字段LocalDate localDate(Java.time),我考虑过使用LocalDate因为我想保存“日期”而不保存“时间”。我想将此类 A 的对象保存到 firebase 数据库中。作为LocalDate is serializable我以为我可以轻松地将它保存在 FB 数据库上,但在实际实现它时,我收到此错误:

'firebase.database.DatabaseException: Found conflicting getters for name: getChronology'

我在 Twitter 上发布了此消息,并得到了 @puf 和 doug 的快速回复。

我确实得到了一些帮助,但我仍在寻找几个问题的答案:

  1. 有没有一种简单且通用的方法可以将字段保留在我的模型中LocalDate但只是用它作为String存储在数据库中时?就像是overriding the toString()方法(尽管重写toString()此处不起作用,因为 Firebase 不使用可序列化来获取对象数据)。

  2. “如何在没有时间的情况下将日期保存到 Firebase 数据库”的最佳解决方案是什么?


正如我在后续推文中暗示的那样,以下行为最符合您的利益:

  1. 使用普通的 long 值来表示时间点
  2. 将 LocalDate (或任何派生对象)的使用推迟到应用程序中实际需要其日期操作功能的其他部分。

其原因有:

  1. 存储时间较长意味着您能够按该单个值对数据库查询进行排序和过滤。
  2. 您不必破坏 POJO 来提供尝试转换 a 的 getter 和 setterlong日期到该派生对象,甚至不知道它是否会被使用。根据需要进行延迟更简单、更高效。

最重要的是,不将实用程序类与数据模型一起使用会更容易、更灵活、更高效。当数据模型包含存储的原始数据时,它们可以更好地与 Firebase 配合使用。

请注意,对于 Firestore,大多数平台上都会对本机日期对象类型进行特殊处理。因此,如果您想移植到 Firestore,实际上最好使用平台的日期类型来读取和写入 Firestore 时间戳字段。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Firebase 数据库中保存 LocalDate (Java.time) 对象 的相关文章

随机推荐

  • Android 包含 javax.sound.sampled.* [重复]

    这个问题在这里已经有答案了 对于 Android 应用程序 适用于 Android 版本 2 1 我想分析声音文件并获取频率 因此 我想为此目的包含 javax sound sampled 我怎样才能得到它 任何外部 jar 文件可以为我做
  • 生命周期事件中的 BeanFactoryPostProcessor 和 BeanPostProcessor

    我试图理解之间的区别BeanFactoryPostProcessor and BeanPostProcessor 我明白BeanFactoryPostProcessor对 bean 定义进行操作 即在创建 bean 实例之前执行它并Bean
  • if ( $a == $b || $a == $c ) 语句的简写表达式

    我知道这段代码会起作用 echo a b a c Yes No 可以这样读 如果 a 等于 b 或 a 等于 c 有没有办法让它更短 例如 如果 a 等于 b 或 c 我已经尝试了很多 包括这个 但仍然没有运气 echo a b xor c
  • Mono 2.4 和 RhinoMocks 3.5 中的扩展方法

    我正在 Ubuntu 中使用 MonoDevelop 2 0 和 Mono 2 4 我遇到了在 RhinoMocks 3 5 中无法使用扩展方法 例如 mockView Stub 进行 AAA 样式测试的问题 我从 Ayende 的网站下载
  • 有效负载包含两个或多个具有相同目标路径的文件

    我创建了一个新的 UWP MSTest 项目 并添加了对主应用程序的引用 当我构建解决方案时 出现错误 有效负载包含两个或多个具有相同目标路径的文件 以及冲突的文件 我检查了文件的本地副本 并将它们设置为不要抄袭 以下是错误消息的示例 严重
  • Capistrano 3 sudo 任务

    我想用 Capistrano 3 编写一个配方 使用 sudo 在远程服务器上执行任务 使用 Capistrano 2 可以这样做 default run options pty true task hello do run sudo cp
  • 无主与弱者。为什么我们应该更喜欢无主?

    正如 Apple 在 Swift 编程语言 中所说 看来我们应该更喜欢unowned than weak只要有可能 如果捕获的引用永远不会变为 nil 则应始终将其捕获为无主引用 而不是弱引用 来自 弱引用和无主引用 部分这一页 https
  • 使用交叉验证来计算特异性[重复]

    这个问题在这里已经有答案了 我想使用交叉验证来计算特异性 我找到了计算准确度 f1 分数和精度的代码 但我找不到具体的 例如 f1 score 的代码如下 cross val score SVC X y scoring f1 cv 7 或者
  • 无法删除空 S3 存储桶

    我有一个 100 空的 S3 存储桶 存储桶上从未启用版本控制 然而 我仍然无法移除水桶 我已经通过控制台和 CLI 工具进行了尝试 在控制台上它只显示 错误 没有错误消息 从 cli 和 api 中 它告诉我 调用 DeleteBucke
  • URLSession didCompleteWithError nil 错误

    正在开发一个 IOS9 应用程序 该应用程序在 NSURLSessionDelegate 控制器中执行后台 URLSession 我是这样开始的 self session data NSMutableData alloc init NSUR
  • 多个 PHP 会话

    我要为一个网站构建一个 PHP 应用程序 该网站已经有另一个 PHP 应用程序在同一域 服务器上运行 我的应用程序当然会使用会话 并且我不希望我的会话干扰现有应用程序 例如 如果我想使用 SESSION username 也许其他应用程序也
  • 从 swagger 规范文件更新邮递员集合

    我正在将一个 swagger 规范文件导入邮递员以创建一个集合 此时 它按预期工作 并且该集合是使用所有请求和子文件夹生成的 很好 但是当API更新时 我需要更新邮递员以根据新规范更新所有请求 我找不到 更新 或其他操作之类的操作 我正在尝
  • JavaScript:如何将 DOM 元素序列化为字符串以便稍后使用?

    这可能看起来是一个奇怪的请求 而且很不寻常 但这是我正在努力解决的一个挑战 假设您有一个 DOM 元素 它由 HTML 和应用的一些 CSS 以及一些 JS 事件侦听器组成 我想克隆这个元素 以及应用的所有 CSS 和 JS 将其序列化为一
  • 适用于 Canvas HTML5 的 Jquery 画笔大小滑块

    您好 我正在尝试为我的 Canvas 绘图应用程序创建一个画笔大小滑块 有人可以帮助解决这个问题吗 我发现的一些方法与我运行应用程序的 Jquery 库不兼容 谢谢 你的问题在细节上有点简短 O 以下是如何使用 input type ran
  • 为什么 SimpleDateFormat 解析错误的日期?

    我有字符串格式的日期 我想将其解析为实用日期 var date 03 11 2013 我将其解析为 new SimpleDateFormat MM dd yyyy parse date 但奇怪的是 如果我通过 03 08 201309 hj
  • Android升级现有应用程序

    我试图通过更改清单文件中的以下内容来升级现有应用程序 更改自 android versionCode 1 android versionName 1 0 To android versionCode 2 android versionNam
  • React“无法对‘MediaRecorder’执行‘停止’:MediaRecorder 的状态为‘非活动’。”

    我想用ReactJS写一个小型录音网站 但我总是收到这个错误 Failed to execute stop on MediaRecorder The MediaRecorder s state is inactive 这是我编写的代码的一部
  • Hamcrest - 使用什么版本? 1.3或2

    我很困惑 目前我正在使用测试我的 spring 应用程序
  • 根据需要更改图像叠加

    我需要你的帮助 我使用以下命令直播到 Twitch ffmpeg i input mp4 i image jpg filter complex overlay x 10 x 10 s 1920x1200 framerate 15 c v l
  • 在 Firebase 数据库中保存 LocalDate (Java.time) 对象

    我有一堂课 比如说Class A 其中有一个字段LocalDate localDate Java time 我考虑过使用LocalDate因为我想保存 日期 而不保存 时间 我想将此类 A 的对象保存到 firebase 数据库中 作为Lo