![](/img/trans.png)
[英]Cloud Functions: Delete file on Cloud Storage when Firestore document is deleted
[英]Firestore - Cloud functions - Get uid of user who deleted a document
我试图在 onWrite 云 function 中获取删除 firestore 中文档的任何经过身份验证的用户的 UID(不是没有此问题的实时数据库)。 原因是......我正在尝试创建对集合中的文档执行的所有操作的日志。 我必须使用云功能,因为客户端可以假设创建/编辑/删除文档,然后阻止发送相应的日志条目。
我在其他stackoverflow问题中看到过:
该 Firestore 将不会在 onWrite function 中包含任何用于 firestore 的身份验证数据,并且可接受的解决方法是在正在创建/更新的文档中包含updated_by
、 created_by
、 created_at
、 updated_at
等字段,这些字段使用 firebase 权限进行验证。 这对于正在插入或更新的文档非常有用,但是onWrite
云函数中删除的文档只有change.before
数据,没有change.after
数据,这意味着您无法查看谁删除了文档,最多也可以查看谁更新了文档删除前的最后一个。
我正在尝试以下一些解决方法(但他们有严重的批评者):
有没有人有更好的方法来做这样的事情? 谢谢!
根本不要删除文档。 只需添加一个名为“deleted”的字段,将其设置为 true,然后使用删除它的用户的 UID 添加另一个字段。 在查询中使用这些新字段来决定是否要处理任何给定查询的已删除文档。
在记录删除的单独集合中使用不同的文档。 每当您需要知道某个文档是否已被删除时,都可以查询该集合。 或者在标记删除的不同数据库中创建不同的记录。
真的没有其他选择。 使用现有文档或创建新文档来记录更改。 退出文档是唯一可以查询的内容 - 您无法查询 Firestore 中不存在的数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.