副本:Firebase storage URL keeps changing with new token
当用户上传个人资料图片时,我将其存储在 firebase 存储中,文件名为 uid。 假设用户然后去发表了 100 条帖子 + 500 条评论,然后更新了他们的个人资料图片。
目前我有一个触发器可以更新所有帖子和评论文档中的个人资料图片 url。我必须这样做的原因是,当图像在存储中发生更改时,访问 token 也会更改,这是 url 的一部分,因此旧 url 不再有效。
我想做的是不更改访问 token 。如果我能做到这一点,我就可以避免会大量增加我的 firestore 写入的大量更新。
有什么办法吗?还是另一种选择?
编辑: 如果您不介意将文件公开,则另一种解决方案。 添加此存储规则,您将不必使用 token 来访问该文件。 这将允许在任何子文件夹中全局读取“mydir”。
match /{path=**}/mydir/{doc} {
allow read: if true;
}
最佳答案
这里只有两个选项:
- 您只存储个人资料图像 URL 一次,可能在用户的个人资料文档中,并在每次需要时查找它。作为返回,您只需编写一次。
- 您存储每个帖子的个人资料图片 URL,在这种情况下,您只需加载帖子文档而不是每个帖子的个人资料 URL。作为返回,您必须在每个帖子文档中写入个人资料 URL,并更新它。
对于较小的网络,前者更常见,因为您更有可能看到同一用户的多个帖子,因此您可以分摊在多个帖子上进行额外查找的成本。
用户网络越大,第二种方法就越有趣,因为与您现在关注的写入相比,您更关心读取性能和简单性。
最后,这里没有单一的正确答案。您必须自己决定希望您的应用具有什么样的性能和成本概况。
关于Firebase 存储 url,新文件保持相同的访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64095410/