2016-05-21 46 views
6

'daki depolama başvurusundan URI alınamadı Başka bir yöntem kullanarak işlemek için Firebase deposunda saklanan bir görüntü URI'si almaya çalışıyorum.Firebase

FirebaseStorage storage = FirebaseStorage.getInstance(); 
    StorageReference storageRef = storage.getReferenceFromUrl(this.getString(R.string.storage_path)); 
    Uri uri = storageRef.child("groups/pizza.png").getDownloadUrl().getResult(); 

ve bir hata alıyorum "java.lang.IllegalStateException: Görev henüz tamamlanmadı" aşağıdaki kullanıyorum

cevap

9

Sen bir dosya için indirme URL edinebilirsiniz:

storageRef.child("groups/pizza.png").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() { 
    @Override 
    public void onSuccess(Uri uri) { 
     // TODO: handle uri 
    } 
}).addOnFailureListener(new OnFailureListener() { 
    @Override 
    public void onFailure(@NonNull Exception exception) { 
     // Handle any errors 
    } 
}); 

Firebase documentation for downloading data via a URL'a bakın.

+0

Hızlı yanıt için teşekkürler, Aslında bunu denedim, ancak "OnFailureListener" - Sınıf 'Anonim sınıf OnFailureListener' türetilen hata ya da yanlış soyutlama 'OnFailure (' OnFailureListener 'özel durum' OnFailure 'özel durum' uygulanmalıdır ' Firebase için oldukça yeni ve genel olarak kodlama yapıyorum ve neyi kaçırdığımı bilmek isterim. – bbenis

+0

"Atılabilir atılabilir" yerine, onFailure için argüman olarak "İstisna istisnası" demen gerekir. –

+0

orijinal istisnasının sebebi, yöntemin asenkron olduğu ve Frank'in yaptığı gibi çağrılması gerektiğidir. –