Как отлаживать переменные и функции firestore.rules? - PullRequest
1 голос
/ 11 ноября 2019

У меня проблемы с попыткой диагностики определенного правила в моем файле 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 секунд, если бы смог увидеть оцениваемые данные.

1 Ответ

1 голос
/ 11 ноября 2019

Существует локальный эмулятор для правил безопасности Cloud Firestore. Это ваш лучший (и действительно единственный) инструмент для анализа выполнения правил безопасности. Пошаговой отладки нет, но вы можете увидеть много отладочной информации в консоли.

https://firebase.google.com/docs/rules/emulator-setup

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...