在我的新安卓防火墙项目中,我使用了com.google.firebase:firebase-storage:16.0.1库。
我得到以下错误:

我打开了另一个项目,其中包含了库firebase-storage:15.0.2和taskSnapshot.getDownloadUrl();,它们都是针对这个项目工作的。但是在使用了最新的依赖库之后,它就不能工作了。
现在,我如何获得文件URL?
是否可以获得文件下载链接?
发布于 2018-05-28 19:14:31
我已经为我的问题找到了两个解决方案。
//add file on Firebase and got Download Link
filePath.putFile(imageUri).continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
if (!task.isSuccessful()){
throw task.getException();
}
return filePath.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()){
Uri downUri = task.getResult();
Log.d(TAG, "onComplete: Url: "+ downUri.toString());
}
}
});另一个解决方案!
这是一个比google文档更简单和更小的,我将使用它:
filePath.putFile(imageUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
filePath.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
Log.d(TAG, "onSuccess: uri= "+ uri.toString());
}
});
}
});发布于 2018-05-28 18:24:30
该方法已在16.0.1版(检查火基释放说明)中被废弃,因此您必须使用
StorageReference.getDownloadUrl()
如果您想在上传文件之后获得它们,那么您必须检查它们的文档这里。它已经更新了。
发布于 2019-02-01 15:33:38
taskSnapshot.getDownloadUrl()是不推荐的,因此我建议在您的addOnSuccessListener()方法中使用storageReference并调用getDownloadUrl()方法来获取文件的url,您可以使用它做任何事。希望能帮上忙。
mUploadTask = storageRef.putFile(file).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// get the image Url of the file uploaded
storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
// getting image uri and converting into string
Uri downloadUrl = uri;
fileUrl = downloadUrl.toString();
}
});
}
});https://stackoverflow.com/questions/50570893
复制相似问题