【发布时间】:2026-01-26 15:20:04
【问题描述】:
我正在构建一个用户可以上传图片的应用。我使用firebase作为后端。现在既然所有登录的用户都可以上传,我该如何安全地管理呢? 图片通过 firebase 存储上传,然后将 URL 保存到 Firestore。 我有两个选择:
- 将 URL 添加到 Firestore,然后可以上传图像。 这样做的好处是,在添加新的 Firestore 文档后,我可以授予用户上传文件的权限。缺点是添加文档后上传可能会失败。这意味着 Firestore 中有一个 URL,而 Storage 中没有图像。
- 图像上传到存储,然后添加 Firestore 文档。 这样做的好处是每个文档都附有一张图片,但这也意味着每个用户都可以上传他们想要的每张图片,而我没有任何控制权。
我确实使用了 firebase 云函数,但如果我先添加文档,则会调用云函数,而图像可能无法完成上传。解决这个问题的最佳方法是什么?
【问题讨论】:
-
“这样做的好处是,在添加新的 Firestore 文档后,我可以授予用户上传文件的权限。” => 你打算如何给用户权限?请注意,您无法在 Cloud Storage 规则中读取 Firestore 数据库。我能看到的唯一方法是使用自定义声明,但它们可能需要时间来传播。
标签: firebase google-cloud-platform google-cloud-firestore google-cloud-functions firebase-storage