我正在开发一款用于拍照的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();
}
});
此网址会保存在数据库中的多个位置,我需要加载用户的个人资料图片 - 每个帖子的条目,他在应用上的其他人的消息等等。
现在如果他以后更改了个人资料图片,我有以下2个选项
那么有更好的方法将图片上传到Firebase存储并生成静态的网址吗?
这种依赖的原因是我使用Picasso和Glide加载图像,我需要网址是静态的。
开箱即用的想法也是受欢迎的,只要他们解决我以最少的努力管理个人资料图片的问题。
答案 0 :(得分:0)
我最终决定完全取消这些网址。带有前缀gs://
的Google存储空间是静态的。并且只能从应用内访问。因此,我决定使用this tutorial
RequestHandler
uri编写自定义gs://
现在每次更新图片时,我都会覆盖原始文件,并自动更新数据库中所有条目的所有链接的图像。