【问题标题】:Firebase Storage - User does not have permissionFirebase 存储 - 用户没有权限
【发布时间】:2018-08-30 12:54:47
【问题描述】:

我添加了我的应用程序的一部分,用户可以上传个人资料图片,但由于某种原因,我收到了一个 firebase 错误,提示我/用户没有权限,即使规则显示所有用户都可以读取和写入给定身份验证不为空。我希望允许已登录的用户读/写。

我的 Firebase 存储规则

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

堆栈跟踪:

03-21 11:46:26.851 13033-13033/com.dogboy60.photoblog E/StorageException: The server has terminated the upload session
                                                                      java.io.IOException: The server has terminated the upload session
                                                                          at com.google.firebase.storage.UploadTask.zzLb(Unknown Source:21)
                                                                          at com.google.firebase.storage.UploadTask.zzLa(Unknown Source:58)
                                                                          at com.google.firebase.storage.UploadTask.run(Unknown Source:259)
                                                                          at com.google.firebase.storage.zzr.run(Unknown Source:2)
                                                                          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
                                                                          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
                                                                          at java.lang.Thread.run(Thread.java:764)

03-21 11:46:26.865 13033-13033/com.dogboy60.photoblog E/此处出错:: com.google.firebase.storage.StorageException: 用户无权访问此对象。

【问题讨论】:

  • @NileshRathod 我有以下内容: private StorageReference storageReference; //代码 storageReference = FirebaseStorage.getInstance().getReference(); //code StorageReference imagePath = storageReference.child("Profile Images").child(UUID +".jpeg");
  • nvm getReference 获取链接,所以我有那个页面的内容。虽然它不会工作
  • 您应该发布代码和显示用户已登录的完整堆栈跟踪。

标签: java android database firebase firebase-storage


【解决方案1】:

您可以更改 Firebase 规则,如下面的代码.. 仅删除 if 条件。

service firebase.storage {
   match /b/sacred-age-861.appspot.com/o {
      match /{allPaths=**} {
         allow read, write;
      }
   }
}   

【讨论】:

  • 但这不会允许任何人发布/添加到存储中吗?我只想登录用户