什么是获取多个用户个人资料图像的更好解决方案 url

What is a better solution for fetching multiple user profile image url

我想知道在获取多个用户个人资料图像时主要使用哪种解决方案。 特别是在 'comments' 中,它显示了多个用户的讨论,以及他们的昵称和个人资料图片。

我在 Firebase/profileimg/{uid} 保存用户个人资料图片,如果用户更新图片,它会替换为新值。所以每 1 位用户最后只有 1 张个人资料图片。
如果用户发表评论,我将评论与评论所需的用户当前信息(昵称,profileImg)一起添加。 因为我不想每次获取每条评论时都获取用户的信息。

例如)

{
  author: { 
       uid: ****,
       profileURL: 'https://...',  
       nickname: 'foobar'
  }, 
  body:  "", 
} 

但问题是,当用户更新他们的个人资料时,早期评论的照片 URL 已过时,图像 link 已损坏。

现在我有2个选择,

  1. 在存储中保留用户的旧个人资料图像,以便图像 link 仍然有效。 (需要更多存储空间)
  2. 在评论对象中只保存用户的uid,并从uid 中获取最新的个人资料图片。 (阅读成本更高)

在成本方面,哪个更有效或更频繁使用? 感谢您阅读。等待高级开发大师

更新:

最佳选项:选项#1:

您可以将上传图片生成的link保存到Cloud Firestore数据库中。

您可以在用户上传新图片时更新用户个人资料中的 profileURL 以及所有用户之前的评论。

选项#2:

你也可以试试这个:

当用户更新个人资料图片时,更新所有以前的评论以使用新的个人资料网址。

您始终需要分两步执行此操作:

  1. 运行 根据您的条件进行查询以确定文档 ID
  2. 通过单独更新或一次或多次批量写入来更新文档。

您可以在此处阅读更多相关信息:

选项#3:

我会说你的第一个选择比第二个好。 -- 在存储中保留用户的旧个人资料图像,以便图像 link 仍然有效。 (存储成本更高)- 因为存储成本相对便宜。

价格详情如下:

文档读取:每 100,000 个文档 0.06 USD

文档写入每 100,000 个文档 0.18 USD

文档删除每 100,000 个文档 $0.02

存储数据 $0.18/GiB/month

https://firebase.google.com/docs/firestore/pricing

读取、写入和删除

您需要为使用 Cloud Firestore 执行的每个文档读取、写入和删除付费。

写入和删除的费用很简单。对于写入,每个设置或更新操作都算作一次写入。

读取费用有一些您应该记住的细微差别。以下部分详细解释了这些细微差别。

监听查询结果

Cloud Firestore 允许您监听查询结果并在查询结果发生变化时获得实时更新。

当您收听查询结果时,每次添加或更新结果集中的文档时,您都需要为一次阅读付费。由于文档已更改而从结果集中删除文档时,您也需要为阅读付费。 (相比之下,删除文档后,您无需为阅读付费。)

此外,如果侦听器断开连接超过 30 分钟(例如,如果用户下线),您将像发出全新查询一样收取读取费用。

您可以将上传图片生成的link保存到Cloud Firestore数据库中。

您可以在用户上传新图片时更新用户个人资料中的 profileURL 以及所有用户之前的评论。