firebase 存储 java.lang.IllegalStateException: 任务尚未完成

问题描述

我想从 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 (将#修改为@)