Java 我在获取firebase图像的url时遇到问题

Java 我在获取firebase图像的url时遇到问题,java,android,firebase,firebase-storage,Java,Android,Firebase,Firebase Storage,这会返回我在聊天com.google.android.gms.tasks中发送的每个图像。zzu@d55ef5 以下是我的代码: @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (reque

这会返回我在聊天
com.google.android.gms.tasks中发送的每个图像。zzu@d55ef5

以下是我的代码:

@Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == 1 && resultCode == RESULT_OK){
            Uri uriImagen = data.getData();
            storageReference = storage.getReference("chat_images");//El nombre de la carpeta en la que voy a guardar las imagenes
            final StorageReference photoReference = storageReference.child(uriImagen.getLastPathSegment()); //Obtenemos como un id de la imagen que la diferencia de todas las demás
            photoReference.putFile(uriImagen).addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    String urlPhoto = taskSnapshot.getMetadata().getReference().getDownloadUrl().toString();

                    Log.v("Url de la foto", urlPhoto);

                    Message m = new Message(tvName.getText().toString() + " te ha enviado una foto", urlPhoto, tvName.getText().toString(), "", "2", "00:00");
                    databaseReference.push().setValue(m);
                }
            });
        }
    }

@覆盖
受保护的void onActivityResult(int-requestCode、int-resultCode、@Nullable-Intent-data){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==1&&resultCode==RESULT\u确定){
Uri uriImagen=data.getData();
storageReference=storage.getReference(“chat_images”)///El nombre de la ru毯en la que voy a guardar las images
final StorageReference photoReference=StorageReference.child(uriImagen.getLastPathSegment());//Obtenemos-como-un-id-de-la-imagen-que-la-differentia-de-todas-la-demás
photoReference.putFile(uriImagen).addOnSuccessListener(这是新的OnSuccessListener()){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
字符串urlPhoto=taskSnapshot.getMetadata().getReference().getDownloadUrl().toString();
Log.v(“Url de la foto”,Url照片);
消息m=新消息(tvName.getText().toString()+“te ha enviado una foto”,urlPhoto,tvName.getText().toString(),“”,“2”,“00:00”);
databaseReference.push().setValue(m);
}
});
}
}
需要帮助..提前谢谢

您可以使用
任务
来代替,试试这个。 顺便说一句,这个
getMetadata().getReference().getDownloadUrl()
是不推荐使用的,我建议您阅读一下

photoReference.putFile(uriImagen).addOnSuccessListener(新的OnSuccessListener()){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
Task downloadUri=taskSnapshot.getStorage().getDownloadUrl();
if(downloadUri.issusccessful()){
字符串urlPhoto=downloadUri.getResult().toString();
Log.v(“Url de la foto”,Url照片);
消息m=新消息(tvName.getText().toString()+“te ha enviado una foto”,urlPhoto,tvName.getText().toString(),“”,“2”,“00:00”);
databaseReference.push().setValue(m);
}}
})
.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
//你想干什么就干什么
}
});
尝试以下代码:

public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

            Task<Uri> downloadUrl = taskSnapshot.getStorage().getDownloadUrl();
            downloadUrl.addOnCompleteListener(new OnCompleteListener<Uri>() {
                @Override
                public void onComplete(@NonNull Task<Uri> task) {
                    Log.v(TAG, "Media is uploaded");

                    String downloadURL = "https://" + task.getResult().getEncodedAuthority()
                            + task.getResult().getEncodedPath()
                            + "?alt=media&token="
                            + task.getResult().getQueryParameters("token").get(0);

                    Log.v(TAG, "downloadURL: " + downloadURL);
                    //save your downloadURL
                }
            });
        }
public void onSuccess(UploadTask.TaskSnapshot TaskSnapshot){
Task downloadUrl=taskSnapshot.getStorage().getDownloadUrl();
downloadUrl.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
Log.v(标签“媒体已上载”);
String downloadURL=“https://”+task.getResult().getEncodedAuthority()
+task.getResult().getEncodedPath()的
+“?alt=媒体和令牌=”
+task.getResult().getQueryParameters(“令牌”).get(0);
Log.v(标记“downloadURL:+downloadURL”);
//保存下载的URL
}
});
}
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

            Task<Uri> downloadUrl = taskSnapshot.getStorage().getDownloadUrl();
            downloadUrl.addOnCompleteListener(new OnCompleteListener<Uri>() {
                @Override
                public void onComplete(@NonNull Task<Uri> task) {
                    Log.v(TAG, "Media is uploaded");

                    String downloadURL = "https://" + task.getResult().getEncodedAuthority()
                            + task.getResult().getEncodedPath()
                            + "?alt=media&token="
                            + task.getResult().getQueryParameters("token").get(0);

                    Log.v(TAG, "downloadURL: " + downloadURL);
                    //save your downloadURL
                }
            });
        }