我正在使用Android Studio并使用Firebase Storage,可以上传所需的图像,但无法获取下载网址。
我用了这个:
askSnapshot.getMetadata().getReference().getDownloadUrl().toString();
这:
filepath.getDownloadUrl().toString();
结果相同
它向我展示了这样的东西:
com.google.android.gms.tasks.zzu@f7d5815
我的上传代码:
FirebaseStorage存储; StorageReference storageReference;
存储= FirebaseStorage.getInstance(); storageReference = storage.getReference(); 最终的StorageReference文件路径= storageReference.child(“ images”)。child(“ test.jpg”);
filepath.putFile(selectedImage).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
bigImageEncoded=filepath.getDownloadUrl().toString();
thumbImageEncoded=taskSnapshot.getMetadata().getReference().getDownloadUrl().toString();
Log.d("download_url",bigImageEncoded);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d("erorr",e.getMessage());
}
});
有人可以帮忙吗?! 谢谢
答案 0 :(得分:2)
为解决此问题,我建议在上传任何文件后,将下载URL存储到Firebase Realtime Database或新的Cloud Firestore之类的数据库中,以便以后使用。
请在下面查看获取download URL
的简单示例。
storageRef.child("YourFolderName").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
// Got the download URL for "YourFolderName/YourFile.pdf"
// Add it to your database
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
}
});
答案 1 :(得分:1)
您需要收听此事件
filepath.getDownloadUrl().addOnSuccessListener(...{...})
您将在回调中获得uri