Firebase Storage调用listAll()始终触发onFailure问题求助
Firebase Storage listAll() 调用失败问题排查
尝试获取Firebase Storage中“Musics”目录下的子文件夹和文件名称及URL,但调用listAll()方法始终进入onFailure回调。
编写的代码:
FirebaseStorage storage = FirebaseStorage.getInstance(); StorageReference listRef = storage.getReference(); listRef = listRef.child("Musics"); Log.d("hafiz", listRef.getName()); listRef.listAll() .addOnSuccessListener(new OnSuccessListener<ListResult>() { @Override public void onSuccess(ListResult listResult) { for (StorageReference prefix : listResult.getPrefixes()) { // 处理子文件夹 Log.d("hafiz", prefix.getName()); } for (StorageReference item : listResult.getItems()) { // 处理文件 Log.d("hafizitem", item.getName()); } } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { // 错误回调 Log.d("jibon", e.getMessage()); } });
运行后错误信息:
An unknown error occurred, please check the HTTP result code and inner exception for server response.
当前存储规则:
service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write; } } }
排查及解决建议:
- 检查网络连接:确保设备处于稳定的网络环境,
listAll()需要向Firebase服务器发起网络请求。 - 验证目录路径:确认Storage根目录下确实存在“Musics”目录,注意路径大小写敏感,避免拼写错误。
- 打印完整异常信息:在
onFailure回调中添加e.printStackTrace(),获取完整的异常栈轨迹,能定位更具体的错误原因(如权限配置实际未生效、Bucket不匹配等)。 - 更新Firebase SDK:使用最新版本的Firebase Storage依赖,旧版本可能存在已知的兼容性或功能问题。
- 确认项目配置:检查Android项目中的
google-services.json文件是否正确配置,确保Bucket名称与Firebase控制台一致。
内容的提问来源于stack exchange,提问作者sifatul supto
相关产品推荐
相关产品推荐

