什么是获取多个用户个人资料图像的更好解决方案 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个选择,
- 在存储中保留用户的旧个人资料图像,以便图像 link 仍然有效。 (需要更多存储空间)
- 在评论对象中只保存用户的uid,并从uid 中获取最新的个人资料图片。 (阅读成本更高)
在成本方面,哪个更有效或更频繁使用?
感谢您阅读。等待高级开发大师
更新:
最佳选项:选项#1:
您可以将上传图片生成的link保存到Cloud Firestore数据库中。
您可以在用户上传新图片时更新用户个人资料中的 profileURL 以及所有用户之前的评论。
选项#2:
你也可以试试这个:
当用户更新个人资料图片时,更新所有以前的评论以使用新的个人资料网址。
您始终需要分两步执行此操作:
- 运行 根据您的条件进行查询以确定文档 ID
- 通过单独更新或一次或多次批量写入来更新文档。
您可以在此处阅读更多相关信息:
选项#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 以及所有用户之前的评论。
我想知道在获取多个用户个人资料图像时主要使用哪种解决方案。 特别是在 'comments' 中,它显示了多个用户的讨论,以及他们的昵称和个人资料图片。
我在 Firebase/profileimg/{uid} 保存用户个人资料图片,如果用户更新图片,它会替换为新值。所以每 1 位用户最后只有 1 张个人资料图片。
如果用户发表评论,我将评论与评论所需的用户当前信息(昵称,profileImg)一起添加。
因为我不想每次获取每条评论时都获取用户的信息。
例如)
{
author: {
uid: ****,
profileURL: 'https://...',
nickname: 'foobar'
},
body: "",
}
但问题是,当用户更新他们的个人资料时,早期评论的照片 URL 已过时,图像 link 已损坏。
现在我有2个选择,
- 在存储中保留用户的旧个人资料图像,以便图像 link 仍然有效。 (需要更多存储空间)
- 在评论对象中只保存用户的uid,并从uid 中获取最新的个人资料图片。 (阅读成本更高)
在成本方面,哪个更有效或更频繁使用? 感谢您阅读。等待高级开发大师
更新:
最佳选项:选项#1:
您可以将上传图片生成的link保存到Cloud Firestore数据库中。
您可以在用户上传新图片时更新用户个人资料中的 profileURL 以及所有用户之前的评论。
选项#2:
你也可以试试这个:
当用户更新个人资料图片时,更新所有以前的评论以使用新的个人资料网址。
您始终需要分两步执行此操作:
- 运行 根据您的条件进行查询以确定文档 ID
- 通过单独更新或一次或多次批量写入来更新文档。
您可以在此处阅读更多相关信息:
选项#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 以及所有用户之前的评论。