Missing or insufficient permissions

При предпросмотре в Run Mode появляется ошибка:

Firestore Security Rules: Missing or insufficient permissions

Значит, правила Firestore не разрешают то, что пытается сделать запрос.

инфо
Что нужно заранее
  • В проекте используется Firestore.
  • Настроен хотя бы один запрос к базе.

Две типичные ситуации.

Правила закрывают базу для всех. Например, такие:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

С ними не пройдёт ни один запрос.

Запрос выполняется до входа пользователя. Если правила разрешают доступ только авторизованным:

allow read, write: if request.auth != null;

а запрос стоит на экране входа, ошибка появится каждый раз.

Осмысленные имена виджетов заметно ускоряют поиск: в тексте ошибки будет Container, если виджет так и называется, — а мог бы быть UserQueryContainer.

Что делать:

  • Пересмотрите правила. Откройте Firestore → Settings → Rules и сверьте их с тем, как и когда приложение обращается к базе.

  • Перенесите запрос. Запросы, требующие авторизации, не должны стоять на экранах, доступных гостю.

  • Закройте условием. Если запрос всё же нужен на экране до входа, оберните его в условие и выполняйте только для авторизованного пользователя.

совет

Точный текст ошибки видно в консоли браузера. А проверка схемы во FlutterFlow подскажет, действительно ли выкачены те правила, которые вы правили.

перевод официальной документации FlutterFlow

обновлено

ESC