1

为了让我能够快速使用 firebase 存储,我必须在每个图像和存储桶上添加以下权限:实体:用户,名称:AllUsers,访问:读者。有没有办法避免这种乏味且不可扩展的方法,因为它是所有用户上传的媒体?

我的 Firebase 存储安全性如下所示:

service firebase.storage {
  match /b/myapp.appspot.com/o {
match /proUsers/{userId}/{allPaths=**} {
      allow read, write: if request.auth.uid == userId || request.resource.size < 2 * 1024 * 1024 || request.resource.contentType.matches('image/png') || request.resource.contentType.matches('image/jpeg'); 
    }
  }
}

我很快收到的错误是:Anonymous users does not have storage.objects.list access to bucket 如果我尝试直接访问图像,我会收到错误:Anonymous users does not have storage.objects.get access to object

我在哪里允许匿名用户具有阅读能力?我假设设置允许读取正是这样做的。

4

1 回答 1

0

要允许匿名用户从您的数据库中读取(但不能写入),您可以将规则更改为:

service firebase.storage {
  match /b/myapp.appspot.com/o {
match /proUsers/{userId}/{allPaths=**} {
      allow write: if request.auth.uid == userId || request.resource.size < 2 * 1024 * 1024 || request.resource.contentType.matches('image/png') || request.resource.contentType.matches('image/jpeg');
      allow read;
    }
  }
}
于 2018-01-23T22:49:05.863 回答