【发布时间】:2018-05-30 19:36:26
【问题描述】:
我正在开发一款用于拍照的 Android 应用。首先,用户拍摄个人资料照片。此图像的 URL 保存在 Firebase 实时数据库中。下面是获取downloadUrl的示例代码
Uri file = Uri.fromFile(new File("path/to/images/rivers.jpg"));
StorageReference riversRef = storageRef.child("images/"+file.getLastPathSegment());
uploadTask = riversRef.putFile(file);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Uri downloadUrl = taskSnapshot.getDownloadUrl();
}
});
此网址保存在数据库中的多个位置,我需要在其中加载用户的个人资料图片 - 他的每个帖子的条目、他在应用程序上给其他人的消息等。
现在如果他以后更改头像,我有以下两个选择
- 更新每个数据库条目 - 非常麻烦、蛮力和资源密集型
- 覆盖原始个人资料图片 - 更容易,但我不知道如何。原因是即使对于相同的文件名,Firebase 存储也会为每次下载生成一个新 URL,这违背了本练习的目的。
那么有没有更好的方法将图像上传到 Firebase 存储并生成静态 URL?
这种依赖的原因是我正在使用 Picasso 和 Glide 加载图像,并且我需要 url 是静态的。
欢迎开箱即用的想法,只要它们能以最少的努力解决我管理个人资料图片的问题。
【问题讨论】: