我可以使用以下代码从Firebase存储加载图像:
StorageReference storageRef = storage.getReference().child("Users/" +userId +".jpg");
final long ONE_MEGABYTE = 1024 * 1024;
storageRef.getBytes(ONE_MEGABYTE).addOnSuccessListener(new OnSuccessListener<byte[]>() {
@Override
public void onSuccess(byte[] bytes) {
Log.d(TAG, "downloadImageFromServer onSuccess: ");
Glide.with(UserActivity.this).load(bitmap).asBitmap().into((ImageView) findViewById(R.id.user_photo));
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Log.e(TAG, "downloadImageFromServer onFailure() called with: exception = [" + exception + "]");
}
});
但不使用此代码:
final StorageReference storageReference = storage.getReference().child("Users/" +userId +".jpg");
Glide.with(UserActivity.this).using(new FirebaseImageLoader()).load(storageReference).into((ImageView) findViewById(R.id.user_photo));
两者都取自文档,第二个似乎更方便。
日志中似乎没有错误。
有人可以解释一下区别吗?
这是我在这个话题上唯一遇到的其他问题,但它没有答案。
我正在使用com.google.firebase:firebase-storage:10.2.6
和com.firebaseui:firebase-ui-storage:1.2.0
要使用 Glyde 从 Firebase 存储加载图像,我在项目中使用了此方法。它工作正常:
private void loadImage(){
StorageReference storage = FirebaseStorage.getInstance().getReference();
StorageReference userStorage = storage.child("Users").child(userID);
userStorage.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
Glide.with(context).load(uri.toString()).into(profileImage);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// failed
}
});
}