Почему-то я не могу заставить подстановочные знаки работать в пути с пользовательскими токенами.У пользователя есть пользовательские токены, назначенные как 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/whwhat.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