Чтобы быстро протестировать обновленные правила безопасности Firebase в консоли Firebase, используйте Rules Playground.
Площадка правил — это удобный инструмент, который можно использовать при изучении новых моделей поведения или быстрой проверке правил по мере их написания. Он отображает сообщение, подтверждающее, что доступ был либо разрешен, либо запрещен в соответствии с параметрами, которые вы установили для моделирования.
Используйте игровую площадку правил
- Откройте консоль Firebase и выберите свой проект.
- Затем в навигации по продукту выполните одно из следующих действий:
- Выберите Realtime Database , Cloud Firestore или Storage соответственно, затем нажмите Rules , чтобы перейти к редактору Rules.
- После внесения изменений нажмите Rules Playground в редакторе.
- В настройках Rules Playground выберите параметры для своего теста, в том числе:
- Проверка чтения или записи.
- Определенное местоположение в вашей базе данных или сегменте хранилища в качестве пути.
- Тип аутентификации — неаутентифицированный, аутентифицированный анонимный пользователь или определенный идентификатор пользователя.
- Данные, относящиеся к документу, на которые конкретно ссылаются ваши правила (например, если ваши правила требуют наличия определенного поля, прежде чем разрешать запись).
- Нажмите «Выполнить» и найдите результаты в баннере над редактором.
Пример сценария «Площадка правил»
Протестируйте поведение Rules Playground с помощью следующего примера сценария и основных правил.
Облако Firestore
service cloud.firestore {
match /databases/{database}/documents {
// Allow only authenticated content owners access
match /some_collection/{document} {
allow read, write: if request.auth != null && request.auth.uid == request.resource.data.author_uid
}
}
}
База данных реального времени
// These rules grant access to a node matching the authenticated // user's ID from the Firebase auth token { "rules": { "users": { "$uid": { ".read": "$uid === auth.uid", ".write": "$uid === auth.uid" } } } }
Облачное хранилище
// Grants a user access to a node matching their user ID
service firebase.storage {
match /b/{bucket}/o {
// Files look like: "user/<UID>/path/to/file.txt"
match /user/{userId}/{allPaths=**} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
}
}
В редакторе правил добавьте указанное выше правило.
Выберите get в раскрывающемся меню Simulation type и введите допустимый путь в поле Location .
Включите аутентификацию и выберите тип аутентификации в раскрывающемся списке Provider .
Введите данные идентификатора пользователя и нажмите «Выполнить» .
Результаты моделирования появляются в верхней части редактора. В зависимости от введенных вами данных идентификатора пользователя вы должны увидеть баннер, подтверждающий, что чтение было успешно разрешено или отклонено.