Firebase存储规则-如何实施不同的读写规则

时间:2019-08-13 11:00:37

标签: firebase-storage firebase-security

我正在尝试实施将图像加载到应用程序库中的规则。所有用户都应该能够读取,但只有类型为“ admin”的用户才可以上传/写入图像到存储。

我已经能够使规则与Storage内的其他几个目录一起使用,但始终在读写规则相同的地方。

例如,在用户上传自己的文档的目录中,我实现了一条规则,该规则规定要在目录中读取或写入文件,该目录必须与uid具有相同的名称或具有管理员权限。

有效的代码是:

match /userUploadedDocuments/{uid}/{allPaths=**} {
  allow read, write: if (root.child('CustomerDatabase').child(request.auth.uid).child('userType').val() == 'admin')
    || request.auth.uid == uid;
}

无效的代码是:

match /gallery {
  match /{allImages=**} {
  allow read: if request.auth.uid != null;
  allow write: if (root.child('CustomerDatabase').child(request.auth.uid).child('userType').val() == 'admin');
  }
}

Firebase会接受此代码,但是每当我尝试写入目录时,它将失败。

非常欢迎您的帮助。

0 个答案:

没有答案