在firebase存储上传文件时出现StorageException

时间:2017-12-16 05:18:50

标签: android firebase firebase-storage

当我尝试在不存在的位置上传文件时,

Firebase会给出-13000 StorageException。

示例:

root/abc/cba/pqr/test_file.txt

但是root/test_file.txt and root/abc/test_file.txt both work fine

final File file = new File("local/file_path.txt");
StorageReference remoteLocation = FirebaseStorage.getInstance().getReference();
StorageReference currentFileRef = remoteLocation.child("abc/cba/pqr/test_file.txt");
StorageTask task = currentFileRef.putFile(Uri.fromFile(file))
            .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    String log = "File " + file.getName() + " uploaded successfully !";
                    uploadLog(log);
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception exception) {
                    String log = "File " + file.getName() + " upload Error : "+exception.getClass().getSimpleName()+" " + exception.getCause()+" "+exception.getLocalizedMessage()+" " +exception.getMessage();
                    if (exception instanceof StorageException){
                        log+= " "+((StorageException)exception).getErrorCode();
                        log+= " "+((StorageException)exception).getHttpResultCode();
                    }
                    uploadLog(log);
                    Log.d(TAG,log);
                }
            });

我已更新了Google Play服务的版本以及所有必需的权限。

1 个答案:

答案 0 :(得分:0)

检查您是否在清单和运行时为应用程序提供了 READ_EXTERNAL_STORAGE 权限。

读取存储是危险许可。对于应用程序中的Dangerous Permsssions应具有运行时限制

在Android 6.0(API级别23)中,用户在应用程序运行时向应用程序授予权限,而不是在安装应用程序时。

系统权限分为两类,normal and dangerous

  • 正常权限不会直接影响用户的隐私。如果您的应用在其清单中列出了正常权限,系统会自动授予权限。

  • 危险权限可让应用访问用户的机密数据。如果您的应用在其清单中列出了正常权限,系统会自动授予权限。如果您列出了危险权限,则用户必须明确批准您的应用。

Requesting Run Time Permissions in Android

检查是否是问题。转到设置 - &gt;应用程序 - &gt;您的申请 - &gt;权限 - &gt;允许存储权限。*

  • 要执行此操作,您必须在清单中读取存储许可..

添加运行时权限

  1. Requesting Run Time Permission
  2. Run time permission above Marshmallow