Cloud Firestore 是否有审计跟踪?



我真的很喜欢Cloud Firestore的产品。但它有审计跟踪吗?

我为什么要问?虽然数据库的某些用途本质上是"状态"(例如多人游戏),但对于其他用途,历史也很重要。此外,有时能够查看历史记录对于调试目的(时间旅行)很有用。

那么我必须问的方法是什么,例如"谁删除了本文档中的值"或"谁自此文档成立以来就接触过此文档"?

人们是否使用其他注释文档在应用程序级别执行此操作,或者我可以只在某个地方启用一个设置,以便在后台自动创建此类文档?(然后,我可以像描述任何其他 Firestore 文档一样描述访问权限。

插件,插件等也可以建议。我现在没有一个紧迫的用例 - 只是想了解Cloud Firestore适合哪里,哪里不适合。


顺便说一句,Youtube中的"了解Cloud Firestore"系列简直太棒了! :)

编辑:2022-10-25

正如 Frank 在他的回答中提到的,是的,在我写这个答案时,还没有审计日志记录的解决方案。但是,就今天而言,此选项是可用的,也可以根据需要进行配置。

为了更好地理解,我建议您查看有关Firestore审核日志记录的官方文档,其中说:

Google Cloud

服务会编写审核日志,以帮助您回答 Google Cloud 资源中的"谁在何时何地做了什么?"等问题。

<小时 />

旧答案:

> **注:** 这个答案在撰写本文时是正确的,但现在已经过时了。详见[此答案](https://stackoverflow.com/a/74154622/209103)。

那么我必须问的方法是什么,例如"谁删除了本文档中的值"或"谁自此文档成立以来就接触过此文档"?

Cloud Firestore 不会存储此类元数据。如果您发现自己处于需要此类详细信息的位置,则需要创建一种机制来存储它们。因此,如果您想知道谁删除了特定值,则应创建一个对象数组,其中应存储删除该值的用户的 UID 和时间戳。

人们是否使用其他注释文档在应用程序级别执行此操作

是的,我们通常这样做。

或者我可以在某个地方启用一个设置,以便在后台自动创建此类文档?

没有可以启用的此类设置。

如果您需要文档的历史版本,则可能会在以下帖子中的回答中为您提供可能的架构:

  • Firestore:文档的版本历史记录

虽然 Alex 的回答在撰写本文时是正确的,但 Firestore 现在提供了审核日志记录功能,您可以根据需要启用和配置这些功能。

有关可设置的管理员活动审核日志和数据访问审核日志的完整详细信息,请参阅 Firestore 审核日志记录的文档。

最新更新