No se puede guardar la respuesta de getDownloadUrl () a la variable

cuerpo:

Este método se supone que devolver el downloadURL pero sigue regresando nula y la parte extraña es, puedo ver la URL en el registro

private String profileUrlPath(byte[] profile){

    mStorageReference.child("card_profile").child(userId+".jpg").putBytes(profile).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
            profilepathref.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                @Override
                public void onSuccess(Uri uri) {
                    if(uri != null){
                        profileUrl = uri.toString();
                        Log.d(TAG, "profile image Url: " + profileUrl);
                    }


                }
            });

        }
    });

    return profileUrl;

}
jokster:

Se registra un manejador de éxito en una tarea asíncrona. No hay garantía de que la línea profileUrl = uri.toString();se ejecuta.

Hay una probabilidad muy alta, que no está antes de volver de profileUrlPath.

Además, puede haber problemas de concurrencia.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=218727&siteId=1
Recomendado
Clasificación