2017-05-09 71 views
1

我采取了两种方法来使用滑动从Firebase存储中获取图像。第一种方法工作正常,因为在获取downloadUrl之后,它使用滑动来加载图像。无法使用Glide显示来自Firebase存储的图片?

但第二个更方便,但它不适合我。

请帮我找出问题在这里。

buidl.gradle:应用

dependencies { 
     // ..... not included glige dependency 
     compile 'com.firebaseui:firebase-ui-storage:0.6.0' 
    } 

第一种方法(工作):

// question.imgQuestion = "qimgs/-KiTpzP5t-xJOO5nSK0A/1493896460324-ch1pg2.jpg" 
final StorageReference ref = mStorage.getReference().child(question.imgQuestion); 

ref.getDownloadUrl().addOnSuccessListener(this, new OnSuccessListener<Uri>() { 
    @Override 
    public void onSuccess(Uri uri) { 
     Log.i(TAG, "Download URL : " + uri); // https://firebasestorage.googleapis.com/v0/b/questionpaper-ce229.appspot.com/o/qimgs%2F-KiTpzP5t-xJOO5nSK0A%2F1493896460324-ch1pg2.jpg?alt=media&token=ca2a3f6e-3eb5-4088-a48d-069ac8ad640b 
     Glide.with(QuizActivity.this) 
       .load(uri) 
       .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) 
       .into(mImageQuestion); 
    } 
}); 

第二种方法(不工作,但我想这一点)

// question.imgQuestion = "qimgs/-KiTpzP5t-xJOO5nSK0A/1493896460324-ch1pg2.jpg" 
final StorageReference ref = mStorage.getReference().child(question.imgQuestion); 
Glide.with(QuizActivity.this) 
    .using(new FirebaseImageLoader()) 
    .load(ref) 
    .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) 
    .into(mImageQuestion); 

注:此Firebase存储实例是经过身份验证的实例。

+1

代码看起来没问题。有没有错误信息?考虑添加一个'RequestListener'来获得更多的状态。例如代码请参阅此问题:http://stackoverflow.com/q/43853592/4815718。您也可以尝试使用更新版本的FirebaseUI库。最新的是1.2.0。 –

+0

谢谢,这是由于库版本问题。使用的FirebaseUI版本:1.2.0和Firebase/Play服务版本:10.2.0。现在它正在工作。 –

回答

-1

更换.load(ref).load(ref.getDownloadUrl())

Glide.with(QuizActivity.this) 
.using(new FirebaseImageLoader()) 
.load(ref.getDownloadUrl()) 
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) 
.into(mImageQuestion); 
+0

语句'.load(ref.getDownloadUrl())'是编译器不允许的。 –

+0

.load方法将在参数中采用firebase存储对象。 –

0
StorageReference imagepath = storageReference.child("Images"); 
imagepath.putFile(selectedImage).addOnSuccessListener(new 
OnSuccessListener<UploadTask.TaskSnapshot>() { 
       @Override 
       public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 


       getimage = taskSnapshot.getDownloadUrl(); 

    Glide.with(QuizActivity.this) 
.using(new FirebaseImageLoader()) 
.load(getimage) 
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) 
.into(mImageQuestion); 
       } 
      }); 

试试这个,这个工作对我来说

0

我有这个问题太,原来的火力SDK的最新版本(10.2.4 )导致了这个问题,所以我回到了10.2.1,一切都很好。

相关问题