Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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 如何添加侦听器来检测图像何时已上载到Firebase存储?_Android_Firebase Storage - Fatal编程技术网

Android 如何添加侦听器来检测图像何时已上载到Firebase存储?

Android 如何添加侦听器来检测图像何时已上载到Firebase存储?,android,firebase-storage,Android,Firebase Storage,在我的应用程序中,用户按下一个按钮,将其图像上传到Firebase存储,同时将其带到页面并显示结果。在他们上传图像后,我需要在本地运行一些命令,然后将结果上传到Firebase存储。当图像已经在Firebase存储中时(下面使用的代码),我可以正确显示结果,但如果在用户按下按钮后添加图像,我无法使其正常工作,有没有办法做到这一点 ImageView image = findViewById(R.id.rImage); Picasso.Builder builder = new Pica

在我的应用程序中,用户按下一个按钮,将其图像上传到Firebase存储,同时将其带到页面并显示结果。在他们上传图像后,我需要在本地运行一些命令,然后将结果上传到Firebase存储。当图像已经在Firebase存储中时(下面使用的代码),我可以正确显示结果,但如果在用户按下按钮后添加图像,我无法使其正常工作,有没有办法做到这一点

ImageView image = findViewById(R.id.rImage);

    Picasso.Builder builder = new Picasso.Builder(this);
    builder.listener(new Picasso.Listener()
    {
        @Override
        public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception)
        {
            exception.printStackTrace();
        }
    });
    builder.build().load("https://url").into(image);

我希望我的问题是对的。我会上传带有如下代码的图像:

final-storagereferef=storageRef.child(“images/your_file_name.png”);
uploadTask=ref.putFile(文件);
ImageView图像=findViewById(R.id.rImage);
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();
毕加索.Builder=新的毕加索.Builder(此);
builder.listener(新的Picasso.listener()
{
@凌驾
公共无效onImageLoadFailed(毕加索-毕加索,Uri,异常)
{
异常。printStackTrace();
}
});
builder.build().load(downloadUri).into(图像);
}否则{
//处理故障
// ...
}
}
});

请您再解释一下您想做什么,或者添加更多的代码。显示的代码没有对结果进行任何路由。@TarikHuber出于安全原因,我取出了url链接,它是Firebase存储中结果图像的url。因此,目前,如果结果已经存储在存储中,并且用户按“上载”,结果将显示出来,但实际上,当用户按“上载”时,结果还不会显示在Firebase存储中,因此我想添加监听器,以便在图像上载到Firebase存储后显示该图像。我已尝试使用存储参考在它上面没有成功,请参阅我以前的文章[link](),我发布的代码是唯一一个显示图像的代码。我尝试了你提供的代码,但它一直崩溃。有没有办法将侦听器添加到现有代码中?如果我使用onSuccess和onFailure侦听器,我是否只需要将最后一行代码添加到onSuccess中?