У меня проблемы с попыткой диагностики определенного правила в моем файле firestore.rules. См. этот вопрос здесь для контекста.
Есть ли способ отладки файла и / или функций firestore.rules? Я использую модульное тестирование и эмуляторы для проверки своих правил, но мне бы очень хотелось посмотреть, какие именно значения оцениваются механизмом правил.
Например, вот мой файл firestore.rules:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /organizations/{orgId} {
allow read: if isAdmin();
allow create, update: if isAdmin();
match /classes/{classId} {
allow read: if request.auth.uid != null;
allow create, update: if isAdmin();
match /students/{studentId} {
allow read: if isAdmin() || belongsToCurrentClass();
allow create, update: if isAdmin();
}
}
}
}
}
function isAdmin() {
// removed for security
}
function belongsToCurrentClass() {
// retuns true if the authenticated user is the teacher of the requested class
return get(/databases/$(database)/documents/organizations/$(orgId)/classes/$(classId)).data.teacherUid == request.auth.uid;
}
Я бы хотел установить контрольные точки или пройти по коду. При попытке выполнения операций CRUD на пути организации / {orgId} / classes / {classId} / Students / {studentId} я бы хотел точно узнать, какие значения содержат переменные orgId, classId и studentId, а также ресурс ипараметры запроса. Мне бы очень хотелось проверить, какой именно документ (если таковой имеется) возвращается запросом get в ownToCurrentClass и каково возвращаемое значение.
Кто-нибудь знает какой-либо способ сделать это? Думаю, я бы ответил на мой вопрос, о котором говорилось выше, через 10 секунд, если бы смог увидеть оцениваемые данные.