Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Uri downloadUrl=taskSnapshot.getDownloadUrl();_Android_Firebase_Firebase Storage - Fatal编程技术网

Android Uri downloadUrl=taskSnapshot.getDownloadUrl();

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整数值的方法 试试这段

此方法只能从测试或在私有范围内访问。。。(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();