问题描述
我想从 android 上的 firebase 文件夹下载我的所有文件。
这是我的代码
try {
StorageReference reference = storage.getReference().child("Ringtone");
reference.listAll().addOnCompleteListener(new OnCompleteListener<ListResult>() {
@Override
public void onComplete(@NonNull Task<ListResult> task) {
if (task.isComplete()){
task.addOnSuccessListener(new OnSuccessListener<ListResult>() { /////line 82 == 1st line where i am getting error
@Override
public void onSuccess(ListResult listResult) {
for (StorageReference item : listResult.getItems()) {
RingtoneModel ringtoneModel = new RingtoneModel();
ringtoneModel.setUri(item.getDownloadUrl().getResult()); /////line 88 == 2nd line where i am getting error here
item.getMetadata().addOnSuccessListener(new OnSuccessListener<StorageMetadata>() {
@Override
public void onSuccess(StorageMetadata storageMetadata) {
ringtoneModel.setSongName(storageMetadata.getName());
Toast.makeText(MainActivity.this,"ring name saved",Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(MainActivity.this,e.getMessage(),Toast.LENGTH_SHORT).show();
Log.e("metadata error",e.getMessage());
}
});
}
}
});}else {
Toast.makeText(MainActivity.this,(CharSequence) task.getException(),Toast.LENGTH_SHORT).show();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e("list all error",e.getMessage());
}
}); }catch (Exception e){
Toast.makeText(this,Toast.LENGTH_SHORT).show();
Log.e("all errors",e.getMessage());}
}
Logcat 错误信息
/com.example.alarm E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.alarm,PID: 433
java.lang.IllegalStateException: Task is not yet complete
at com.google.android.gms.common.internal.Preconditions.checkState(Unknown Source)
at com.google.android.gms.tasks.zzu.zzb(Unknown Source)
at com.google.android.gms.tasks.zzu.getResult(Unknown Source)
at com.example.alarm.MainActivity$3.onSuccess(MainActivity.java:88)
at com.example.alarm.MainActivity$3.onSuccess(MainActivity.java:82)
我在 firebase 数据库中的文件夹和文件路径
Firebase storage >Rington<my files
我尝试添加 addonsuuccesslistner 、 addoncompletelitner 、 task.isComplete() 、 task.issuccessfull() 和可能更多的东西
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)