java - 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 也是如此,但这里省略了它。
出了什么问题?
解决方案
试试 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");
}
}
});
推荐阅读
- c++ - 有没有办法从项目的主程序文件中设置对象成员数组大小,该文件#includes 用于声明/定义对象的.h 文件?
- mobile - 从移动浏览器获取 GPS 数据是否已知有些不稳定?
- python - 不带括号的列表或元组不用于打印
- windows - Windows 10 中缺少 IPP 驱动程序(需要连接到 CUPS)
- google-analytics - 未检测到 HTTP 响应 - Wix 上的 Google Analytics(分析)
- jahia - DigitalExperienceManager-CommunityDistribution-7.3.1.0 以错误“无法将 maven 可执行文件设置为 mvn,请检查您的配置”开始
- ios - 如何在导航 SWIFT Xcode 中使用 segue?
- python - 如何防止python将重复项插入mongodb?
- excel - 从 Excel 函数 NETWORKDAYS 获取“start_date”
- javascript - 您是否正确注册了组件?对于递归组件,请确保提供“名称”选项。(在发现
) VUE