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