FirebaseStorage devolviendo error desconocido al solicitar imagen

Estoy intentando extraer una imagen que he agregado a mi almacenaje firebase en un dispositivo androide. Cada vez que esto se ejecuta, obtengo este error del oyente onFailure:

E / StorageException (9646): Se ha producido un error desconocido. Compruebe el código de resultado HTTP y la excepción interna para la respuesta del servidor. E / StorageException (9646): Código: -13000 HttpResultado: 0

También he cambiado los permisos en el almacenaje para tener que leer / escribir por el momento para cerciorarse de que no es el problema.

Gracias de antemano por cualquier ayuda.

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()); } }); 

Acabo de notar que el httpresult es cero. Esto sugiere que la solicitud para obtener la URL de descarga nunca se hizo. Una forma en que esto puede suceder es si los servicios de reproducción no se actualizan en su teléfono. Usted sabrá que este es el error porque adb logcat mostrará un error con algo al efecto de "no se pudo cargar la capa de red de almacenamiento".

Para solucionar este problema, actualice los servicios de reproducción en su teléfono. Hay algunas maneras de hacer esto. Creo que lo más fácil es instalar la aplicación "play servicios de información" para ver los servicios de juego en la tienda de juegos, y luego pulsar actualización si está disponible.

Tuve el mismo problema, la solución para esto es:

  • Crear una referencia de almacenamiento ->
 StorageReference storageRef = storage.getReferenceFromUrl("gs:<bucket address>"); 
  • Crear un hijo para la referencia de almacenamiento

StorageReference spaceRef = storageRef.child("child name");

Actualiza los Servicios de Google Play en tu dispositivo , no en el script de gradle (aunque también lo hagas).

Después de golpear mi cabeza contra la pared durante aproximadamente una hora debido a sólo skimming la respuesta de benjamin-wulfe, así como otros en el Internet, volví y leerlo cuidadosamente. Espero que esto ayude a otros a evitar mi error!

Es necesario tener actualizados servicios de Google Play para evitar esto.

Además, habilite la autenticación anónima en la consola de firebase.

He hade el mismo problema mientras que utiliza la muestra quickstart del almacenamiento de la base de firebase. El problema era que la aplicación no estaba pidiendo permisos de tiempo de ejecución para el almacenamiento en Android M. Así que intente comprobar los permisos de almacenamiento.

En mi caso, estaba creando StorageRef desde URL de descarga no con la ubicación de almacenamiento .

 String storageLocation="gs://bbeplayer.appspot.com/heart.png"; String downloadURL="https://firebasestorage.googleapis.com/v0/b/bbeplayer.appspot.com/o/heart.png?alt=media&token=41a22961-daf1-433e-a580-e65144d34ab3"; StorageReference reference; reference=FirebaseStorage.getInstance().getReferenceFromUrl(downloadURL); 

Así que cambié reference=FirebaseStorage.getInstance().getReferenceFromUrl(downloadURL);

a

 reference=FirebaseStorage.getInstance().getReferenceFromUrl(storageLocation); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.