Android Firebase UI图片加载无法正常工作

时间:2017-05-29 14:49:06

标签: android firebase firebase-storage firebaseui

我可以使用以下代码从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));

两者都来自documentation,第二个似乎更方便。

日志中似乎没有错误。

有人可以解释一下这个区别吗?

This是我在此主题上唯一提出的问题,但没有答案。

我正在使用com.google.firebase:firebase-storage:10.2.6com.firebaseui:firebase-ui-storage:1.2.0

1 个答案:

答案 0 :(得分: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
            }
        });
    }