【发布时间】:2018-02-16 02:14:15
【问题描述】:
我正在尝试使用 firebase 数据库和存储构建社交媒体应用程序。以下是预期的流程。
用户上传个人资料图片,该图片存储在当前用户文件夹的 firebase 存储中,并且 URL 存储在 firebase 数据库中以便快速访问。 (工作正常)
用户发表他们的想法。这会在数据库中保存用户信息,例如发布消息、用户名和个人资料图像 URL。 (工作正常)。
问题
现在的问题是,假设用户更新了他或她的个人资料图片,这会覆盖 firebase 存储中旧的个人资料图片(以便管理存储并使用户图片在所有 cmets 和帖子中都相同)。在发布消息活动中,由于令牌已更改,因此无法访问旧的个人资料图片 URL。
问题
我想知道如何解决这个问题,以使 Firebase 存储 URL 在所有更新中都是静态的(即相同的)。
注意
使用 Picasso 而不是 firebase 方法来获取图像
【问题讨论】:
-
您找到解决方案了吗? atm处理同样的问题
-
@Harry 是的,我所做的是在所有用户的数据库中为个人资料图像使用标准名称,并且在存储上使用此名称。例如,我使用标准的“avatar.jpg”作为头像名称,在存储中我为每个用户使用了唯一的路径(users/userId/profile/avatar.png)。有了这个,每当用户更新他/她的个人资料图片时,它将用一个具有相同名称的新文件 avata.png 覆盖旧的 avatar.png。希望对您有所帮助,如果您需要更多说明,请告诉我
-
我能知道你在数据库中做的URL字符串作为例子吗?
-
@Prodigy 我完全按照您所说的那样处理了 Firebase 存储中图像的路径,但链接中的令牌仍在不断变化。请您提供更多关于您如何解决问题的说明?
-
抱歉回复晚了。您不必再使用完整的 URL(因为它包含动态令牌),您可以使用 Firebase Glide (firebaseui) 获取图像来执行此操作。如果您需要任何说明或示例代码,我可以为您提供帮助。
标签: android firebase firebase-realtime-database firebase-storage