gpt4 book ai didi

java - 从 Firebase 存储检索图像下载 url

转载 作者:行者123 更新时间:2023-12-02 08:48:41 24 4
gpt4 key购买 nike

我正在尝试从 Firebase 存储中检索图像,但在存储图像下载网址时遇到问题。我正在使用final String downloadUrl = task.getResult().getMetadata().getReference().getDownloadUrl().toString();但这只是重新引用我认为的任务 - com.google.android.gms.tasks.zzu@add13a0

我想要存储/检索的是 https://firebasestorage.googleapis.com/v0/b/chat-poll-application.appspot.com/o/Group%20Images%2FGig.jpg?alt=media&token=9a90fc94-e65f-4ace-9259-aaaa91b449c3

有人能看出我哪里出错了吗?

完整代码如下:

filePath.putFile(resultUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful()) {
Toast.makeText(GroupSettingsActivity.this, "Group image uploaded successfully", Toast.LENGTH_SHORT).show();
final String downloadUrl = task.getResult().getMetadata().getReference().getDownloadUrl().toString();
RootRef.child("Groups").child(currentGroupName).child("Image").setValue(downloadUrl)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(GroupSettingsActivity.this, "Image saved successfully", Toast.LENGTH_SHORT).show();
loadingBar.dismiss();
} else {
String message = task.getException().toString();
Toast.makeText(GroupSettingsActivity.this, "Error: " + message, Toast.LENGTH_SHORT).toString();
loadingBar.dismiss();
}
}
});
} else {
String message = task.getException().toString();
Toast.makeText(GroupSettingsActivity.this, "Error " + message, Toast.LENGTH_SHORT).show();
loadingBar.dismiss();
}
}
});

这是我的数据库:

enter image description here

最佳答案

全局声明该对象

Uri uri;

当用户从图库中获取图像时设置uri

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

if (requestCode == 1 && resultCode == RESULT_OK && data != null && data.getData() != null) {

uri = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
jimg.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}

这里的sUrl将会有downloadURL

private void uploadImage() {
try {
final StorageReference ref = storageReference.child( UUID.randomUUID().toString() );

//uploads the image
ref.putFile( uri ).addOnSuccessListener( new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
ref.getDownloadUrl().addOnSuccessListener( new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
final Uri downloadUrl = uri;
sUrl = downloadUrl.toString();

}
} ).addOnFailureListener( new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {

}
} );


}
} );
}catch (Exception e){}
}

关于java - 从 Firebase 存储检索图像下载 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60916756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com