java - 无法从 Firebase 存储下载图片
问题描述
我正在尝试从名称设置为用户的用户 ID 的 firebase 下载个人资料图片。我正在使用 glide 库下载图像,但出现StorageException: StorageException has occurred. Object does not exist at location.
错误。
这是我的代码
String uid = user.getUid();
storageReference.child("ProfilePictures").child(uid).getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
// Got the download URL for 'users/me/profile.png'
Log.d("TAG" , "URI = "+uri);
GlideApp.with(context).load(uri).into(profilepic);
//profilepic.setImageURI(uri);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
Toast.makeText(getApplicationContext(), "Error getting Profile Picture", Toast.LENGTH_LONG).show();
}
});
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
存储参考声明
StorageReference storageReference;
storageReference = FirebaseStorage.getInstance().getReference();
解决方案
改变这个:
storageReference.child("ProfilePictures").child(uid).getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
进入这个:
storageReference.child("ProfilePictures").child(uid + ".jpg").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
推荐阅读
- python-3.x - 我已经下载了 python 3.8.5,但我看到的仍然是 3.7.4 版本。为什么?
- android - AlarmManager 未触发通知
- javascript - 打字稿:遍历复选框(由ngfor制作)并打印每个复选框的值
- java - PostMapping 逻辑错误
- swift - SwiftUI 隐藏 UIKit UINavigationController(rootViewController: _) 的导航栏
- flutter - 制作元素之间没有间隙的网格视图
- java - 通过 Wi-Fi Direct 发送的图像已损坏
- xml - 通过 XML 解析器推送数据是否会根据本规范执行验证?
- sql-server - 为什么删除行在 SQL Server 中似乎很慢?
- go - 去安装复制权限被拒绝