varios - navegar entre fragments android studio
Android-Firebase-TaskSnapshot-¿Solo debería accederse al método dentro del ámbito privado? (3)
El problema parece ser causado por una verificación excesiva de Lint. Pruebe algo como esto:
@SuppressWarnings("VisibleForTests") Uri downloadUrl = taskSnapshot.getDownloadUrl();
Este truco funcionó para mí. Si el problema está relacionado con este informe de error , entonces debe ser reparado en 2.4.
Todo estaba funcionando bien ... hasta que volví a trabajar después de un descanso de 3 meses y actualicé mi Firebase de 9.8 a 10.0.1
Ahora todas mis llamadas a TaskSnapshot
me están dando un error.
Aquí está el código de ejemplo que funcionó bien antes:
OnSuccessListener<UploadTask.TaskSnapshot> successListener = new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
attachments.add(fileName + "*-*" + taskSnapshot.getDownloadUrl().toString());
numberOfCallbacks++;
if (numberOfFiles == numberOfCallbacks) {
currentUpload = false;
onClickSendAlert(sendingView);
}
}
};
El error que ahora obtengo es con respecto a taskSnapshot.getDownloadUrl()
.
Android Studio subraya esa línea en rojo y dice:
Solo se debe acceder a este método desde pruebas o dentro del ámbito privado
¿Alguien puede explicar por qué está sucediendo esto? He estado investigando todo el día durante dos días seguidos y no puedo por la vida de mi entender esto (embarazoso).
Por lo que vale, este código se usa para cargar un archivo a Firebase Storage, y cuando se completa ( OnSuccess
), obtiene la URL de descarga y la almacena en la base de datos de Firebase. Esto funcionó muy bien antes de actualizar a 10.0.1. Obtengo el mismo error en mis tareas de descarga en otro módulo.
Aquí hay una captura de pantalla para darle una mejor visión de mi situación:
Estaba atrapado en el mismo problema y suprimí las advertencias. No funcionó para mí. Para obtener la descarga completa Uri, utilicé el siguiente código:
ref.putFile(imagePath).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
ref.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
Log.d("URL", uri.toString());
// This is the complete uri, you can store it to realtime database
}
});
}
});
Espero que esto ayude a alguien.
Tuve el mismo problema y desapareció cuando actualicé mi versión de Firebase. Estaba usando 10.0.1 y ahora estoy usando 11.0.0