【发布时间】:2019-03-15 15:57:48
【问题描述】:
由于某种原因,我无法让通配符在带有自定义令牌的路径中工作。
用户具有分配的自定义令牌,例如 admin: true 和 ySWLb8NSTj9sur6n2CbS: true
service firebase.storage {
match /b/{bucket}/o {
match /conferences/{confId}/sponsors/{sponsId=**} {
allow read: if request.auth.uid != null
allow write: if request.auth.token.confId == true
}
}
}
我正在尝试从客户端写入 /conferences/ySWLb8NSTj9sur6n2CbS/sponsors/whatever.jpeg,但访问被拒绝。
如果我现在更改为以下内容,它可以正常工作。
service firebase.storage {
match /b/{bucket}/o {
match /conferences/{confId}/sponsors/{sponsId=**} {
allow read: if request.auth.uid != null
allow write: if request.auth.token.admin == true
}
}
}
我什至通过将自定义令牌更改为ySWLb8NSTj9sur6n2CbS: "ySWLb8NSTj9sur6n2CbS" 进行了测试,然后尝试以下操作但未成功并被拒绝访问!
service firebase.storage {
match /b/{bucket}/o {
match /conferences/{confId}/sponsors/{sponsId=**} {
allow read: if request.auth.uid != null
allow write: if request.auth.token.confId == confId
}
}
}
我感觉通配符由于某种原因没有被选中,还是我在这里忽略了某些东西? 在我发现的文档中:https://firebase.google.com/docs/storage/security/user-security?authuser=0
【问题讨论】:
标签: firebase firebase-storage firebase-security