Próbuję pobrać obraz, który dodałem do mojego magazynu firebase na urządzeniu z systemem Android. Za każdym razem, gdy to działa, pojawia się ten błąd od detektora onFailure:FirebaseStorage zwraca nieznany błąd podczas żądania obrazu
E/StorageException (9646): Wystąpił nieznany błąd, sprawdź kod wyniku HTTP i wewnętrzny wyjątek dla odpowiedzi serwera. E/StorageException (9646): Kod: -13000 HttpResult: 0
Zmieniłem również uprawnienia do przechowywania, aby na razie móc je czytać/zapisywać, aby upewnić się, że to nie problem.
Z góry dziękuję za pomoc.
final ImageView test = (ImageView) findViewById(R.id.test_image);
StorageReference ref = storage.getReferenceFromUrl("gs://my-project.appspot.com/test_image.png");
ref.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
Log.d(TAG, "Successfully loaded uri");
test.setImageURI(uri);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d(TAG, "Failed loaded uri: " + e.getMessage());
}
});
Czy rzeczywiście działa dokładnie ten kod, lub masz zastąpione „gs: //bucket/image.png” rzeczywistą „wiadra” (coś jak „projectid.appspot.com”) oraz ścieżkę do obrazu? –
Yea Wymieniłem że z moją rzeczywistą nazwę pliku i wiadro. Edytował kod, aby lepiej odzwierciedlał ten punkt. – johnsoe
Czy można wskazać, jaki wyjątek wewnętrzny znajduje się w wyjątku StorageException? Po prostu zauważyłem, że httpresult wynosi zero. Sugeruje to, że prośba o pobranie adresu URL nigdy nie została wykonana. Jednym ze sposobów jest to, że usługi odtwarzania nie są aktualizowane w telefonie. Poznasz to jest błąd, ponieważ adb logcat pokaże błąd z czymś do skutku „Przechowywanie warstwy sieciowej nie można załadować”. –