Android Uri downloadUrl=taskSnapshot.getDownloadUrl();
此方法只能从测试或在私有范围内访问。。。(Ctrl+F1) 此检查将查看已使用各种支持注释(如RequirePermission或UiThread)进行注释的Android API调用,并根据注释指定标记未正确使用API的任何调用。此检查标记的错误示例: 将错误类型的资源整数(如R.string)传递给需要不同类型(如R.dimen)的API。 忘记在需要重写的方法中调用重写的方法(通过super) 调用需要权限的方法,但未在清单中声明该权限 将资源颜色引用传递给需要RGB整数值的方法 试试这段代码Android Uri downloadUrl=taskSnapshot.getDownloadUrl();,android,firebase,firebase-storage,Android,Firebase,Firebase Storage,此方法只能从测试或在私有范围内访问。。。(Ctrl+F1) 此检查将查看已使用各种支持注释(如RequirePermission或UiThread)进行注释的Android API调用,并根据注释指定标记未正确使用API的任何调用。此检查标记的错误示例: 将错误类型的资源整数(如R.string)传递给需要不同类型(如R.dimen)的API。 忘记在需要重写的方法中调用重写的方法(通过super) 调用需要权限的方法,但未在清单中声明该权限 将资源颜色引用传递给需要RGB整数值的方法 试试这段
@SuppressWarnings(“VisibleForTests”)Uri downloadUrl=taskSnapshot.getDownloadUrl() 因为您使用的是10.0.1版 改为这样做,这样它就会起作用
@SuppressWarnings("VisibleForTesting") Uri downloadUrl = taskSnapshot.getDownloadUrl();
这应该管用
Uri downloadUrl = taskSnapshot.getResult().getDownloadUrl();
我知道为时已晚,但我的回答可能会帮助2018年6月1日之后出现此问题的人。。。 因为firebase在2018年6月1日之后稍微改变了政策和一些功能。以前获取下载uri的方法会给你一些你不想要的东西 试试这个
StorageReference storageReference = FirebaseStorage.getInstance().getReference();
final StorageReference ref = storageReference.child("folder_name_of_firebse_storage/" + UUID.randomUUID().toString());
UploadTask uploadTask = ref.putFile(your_image_uri_which_need_to_be_uploaded);
Task<Uri> urlTask = uploadTask.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();
}
// Continue with the task to get the download URL
return ref.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
//this is the uri you needed...
uploaded_image_url = downloadUri.toString();
} else {
// Handle failures
// ...
Toast.makeText(EditUserProfile.this, "Image uploading failed ", Toast.LENGTH_SHORT).show();
}
});
StorageReference-StorageReference=FirebaseStorage.getInstance().getReference();
final-StorageReference=StorageReference.child(“firebse\u storage/”的文件夹名称+UUID.randomUUID().toString());
UploadTask UploadTask=ref.putFile(需要上传的图像uri);
Task urlTask=uploadTask.continueWithTask(新的Continuation(){
@凌驾
公共任务(@NonNull Task Task)引发异常{
如果(!task.issusccessful()){
抛出task.getException();
}
//继续执行任务以获取下载URL
return ref.getDownloadUrl();
}
}).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Uri downloadUri=task.getResult();
//这是您需要的uri。。。
Upload_image_url=downloadUri.toString();
}否则{
//处理故障
// ...
Toast.makeText(EditUserProfile.this,“图像上载失败”,Toast.LENGTH_SHORT.show();
}
});
希望这有帮助!!!方法
getDownloadUrl()
返回任务。换行
Uri downloadUrl = taskSnapshot.getStorage().getDownloadUrl();
到
Task downloadUrl=taskSnapshot.getStorage().getDownloadUrl();
更改变量名称:
Task<Uri> downloadUrl = taskSnapshot.getStorage().getDownloadUrl();
Task downloadUrl=taskSnapshot.getStorage().getDownloadUrl();
它将起作用。重复:。该警告是Android Studio中的一个错误--在下一版本中修复。Android Studio错误报告:可能重复添加一些说明为什么您的答案有用或OP的答案。
Uri downloadUrl = taskSnapshot.getStorage().getDownloadUrl();
Task<Uri> downloadUrl = taskSnapshot.getStorage().getDownloadUrl();