首页 > 解决方案 > Firebase 上传监听器永远不会被解雇

问题描述

我正在构建一个将照片从设备上传到 Firebase 存储的 android 应用程序。图像已正确上传,但我无法让上传侦听器工作。我已经浏览了这里的文档并实现了完全相同的解决方案:

System.out.println("Starting upload");
Uri file = Uri.fromFile(new File("myPath"));
StorageReference Ref = storageRef.child("images/"+file.getLastPathSegment());
uploadTask = Ref.putFile(file);

// Register observers to listen for when the download is done or if it fails
uploadTask.addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
        // NEVER EXECUTES
           System.out.println("upload failed");

    }
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
        // NEVER EXECUTES
           System.out.println("upload succeeded");
    }
});

我可以看到第一行打印“开始上传”。但就是这样。如果我添加 OnCompleteListener 也是如此,但这里省略了它。

出了什么问题?

标签: javaandroidfirebasefirebase-storage

解决方案


试试 OnCompleteListener

uploadTask = Ref.putFile(file);
uploadTask.addOnCompleteListener(new OnCompleteListener<Uri>() {
    @Override
    public void onComplete(@NonNull Task<Uri> task) {
        if (task.isSuccessful()) {
            System.out.println("upload succeeded");
        } else {
            System.out.println("upload failed");
        }
    }
});

推荐阅读