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

问题描述 投票:-3回答:1

当我尝试在不存在的位置上传文件时,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服务的版本以及所有必需的权限。

android firebase firebase-storage
1个回答
0
投票

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

读取存储是危险的许可。对于危险的Permsssions应用程序应该有运行时的permmsions

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

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

  • 普通权限不会直接冒使用户隐私的风险。如果您的应用在其清单中列出了正常权限,系统会自动授予权限。
  • 危险权限可以让应用程序访问用户的机密数据。如果您的应用在其清单中列出了正常权限,系统会自动授予权限。如果您列出了危险权限,则用户必须明确批准您的应用。

Requesting Run Time Permissions in Android

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

  • 要做到这一点你必须在清单中读取存储权限..

添加运行时权限

  1. Requesting Run Time Permission
  2. Run time permission above Marshmallow
© www.soinside.com 2019 - 2024. All rights reserved.