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