Мне не удается заставить Firebase Storage работать с настраиваемыми правилами и с использованием настраиваемых утверждений.
В моей панели администрирования Python я делаю следующее, чтобы создать пользователя и назначить утверждение client_id:
# Standard Auth
import firebase_admin
from firebase_admin import db, storage, auth
cred = firebase_admin.credentials.Certificate('path_to_cert_json')
app = firebase_admin.initialize_app(cred, 'config')
bucket = storage.bucket(app=app)
# Create User
auth.create_user(email=email)
# Create custom claims
auth.set_custom_user_claims(uid, {'client_id': client_id})
Затем для правил Firebase я пытаюсь разрешить пользователю читать (или загружать) файлы только в том случае, если файл находится в подпапке с идентификатором client_id:
Структура файла в хранилище:
/{environment}/{client_id}/other_folders_and_files
Я установил следующие правила хранения:
service firebase.storage {
match /b/{bucket}/o {
match /{environment}/{client_id}/{allPaths=**} {
allow read: if request.auth.token.client_id == client_id
}
}
}
Но это дает мне ошибку, что в доступе отказано.
Что я делаю не так?
Примечание:
- client_id правильный и структура папок правильная, проверил это миллион раз.