尝试将文件上传到Firebase存储时出错

时间:2020-03-27 16:49:48

标签: android firebase firebase-storage

E / StorageException:发生StorageException。 用户无权访问此对象。 代码:-13021 Http结果:403 服务器已终止上传会话 java.io.IOException:服务器已终止上传会话 com.google.firebase.storage.UploadTask.serverStateValid(com.google.firebase:firebase-storage @@ 19.1.1:331) com.google.firebase.storage.UploadTask.shouldContinue(com.google.firebase:firebase-storage @@ 19.1.1:300) com.google.firebase.storage.UploadTask.run(com.google.firebase:firebase-storage @@ 19.1.1:221) com.google.firebase.storage.StorageTask.lambda $ getRunnable $ 7(com.google.firebase:firebase-storage @@ 19.1.1:1072) com.google.firebase.storage.StorageTask $$ Lambda $ 12.run(com.google.firebase:firebase-storage @@ 19.1.1) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:588) 在java.lang.Thread.run(Thread.java:818) 由以下原因引起:java.io.IOException:{“错误”:{“代码”:403,“消息”:“权限被拒绝。无法执行此操作”}} com.google.firebase.storage.network.NetworkRequest.parseResponse(com.google.firebase:firebase-storage @@ 19.1.1:433) com.google.firebase.storage.network.NetworkRequest.parseErrorResponse(com.google.firebase:firebase-storage @@ 19.1.1:450) 在com.google.firebase.storage.network.NetworkRequest.processResponseStream(com.google.firebase:firebase-storage @@ 19.1.1:441) com.google.firebase.storage.network.NetworkRequest.performRequest(com.google.firebase:firebase-storage @@ 19.1.1:272) com.google.firebase.storage.network.NetworkRequest.performRequest(com.google.firebase:firebase-storage @@ 19.1.1:286) 在com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(com.google.firebase:firebase-storage @@ 19.1.1:70) com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(com.google.firebase:firebase-storage @@ 19.1.1:62) com.google.firebase.storage.UploadTask.sendWithRetry(com.google.firebase:firebase-storage @@ 19.1.1:467) com.google.firebase.storage.UploadTask.beginResumableUpload(com.google.firebase:firebase-storage @@ 19.1.1:268) com.google.firebase.storage.UploadTask.run(com.google.firebase:firebase-storage @@ 19.1.1:216) com.google.firebase.storage.StorageTask.lambda $ getRunnable $ 7(com.google.firebase:firebase-storage @@ 19.1.1:1072) com.google.firebase.storage.StorageTask $$ Lambda $ 12.run(com.google.firebase:firebase-storage @@ 19.1.1) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:588) 在java.lang.Thread.run(Thread.java:818) 发生StorageException。

2 个答案:

答案 0 :(得分:1)

您得到了:

E / StorageException:发生StorageException。用户无权访问此对象。

这是因为您要登录到Firebase的用户无权访问Firebase存储的此对象

因此,您需要使用Firebase Storage Security

授予用户访问此对象的权限。

对于测试,您可以允许所有用户访问Firebase console,在左侧窗格中导航到“存储”标签,然后点击规则标签,然后添加下面

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

您还可以查看文档中的security samples

答案 1 :(得分:1)

将此Firebase设置添加到存储空间

并确保用户登录后再上传任何文件到Firebase存储

service firebase.storage {
    match /b/{bucket}/o {
      match /{allPaths=**} {
          allow read, write: if request.auth != null;
      }
   }
}