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

utugiqy6  于 2022-12-16  发布在  Android
关注(0)|答案(1)|浏览(134)
场景

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

可能的解决方案

我看到QuerySnapshot.snapshot对象中有一个oldDocuments()字段,可以用来实现我的目标。我可以将oldDocument与返回的快照进行比较,以查看嵌套数组中的变化。问题是oldDocument是一个私有字段,我无法通过API访问它。
我使用AndroidKotlin作为我的客户端。

ykejflvf

ykejflvf1#

没有任何内置功能可以帮助您查看文档中的确切更改。但是,有两个解决方法。
第一种方法是附加一个持久监听器,查看快照之间的更改。这意味着当附加监听器时,您将获得查询返回的所有文档的列表。一旦文档发生更改,onEvent将触发。这意味着您将能够知道发生更改的文档。知道您已经有了包含初始文档的列表,您可以根据ID找到旧文档并将其与新文档进行比较。
另一个解决方案是每次更改时保存一个新文档。这是某种文档版本控制。这样,您将始终能够使用两次文档读取来检查新文档与旧文档。

相关问题