繁体   English   中英

如何在 Firestore 中查看更改文档的前后快照?

[英]How to see the before and after snapshot of the changed document in Firestore?

设想

我正在使用onSnapshot()来监听 Firestore 中的文档更改。 我的文档包含一个数组字段。 我想查看从文档的嵌套数组中添加/删除了哪些项目。 有什么办法可以做到这一点?

可能的解决方案

我看到QuerySnapshot.snapshot object 中有一个oldDocuments()字段,可用于实现我的目标。 我可以将oldDocument与返回的快照进行比较,以查看嵌套数组中发生了什么变化。 问题是oldDocument是我无法通过 API 访问的私有字段。

我正在使用 Android Kotlin 作为我的客户。

没有任何内置功能可以帮助您查看文档中到底发生了什么变化。 但是,有两种解决方法。

第一个是附加持久性侦听器并查看快照之间的更改 这意味着当您附加侦听器时,您将获得查询返回的所有文档的列表。 一旦文档发生更改,onEvent 就会触发。 这意味着您将能够知道已更改的文档。 知道您已经有了包含初始文档的列表,您可以根据 ID 找到旧文档并将其与新文档进行比较。

另一种解决方案是每次更改时保存一个新文档。 这是某种文档版本控制。 这样,您将始终能够仅使用两次文档读取来将新文档与旧文档进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM