Перейти к основному содержимому

Ошибка разрешений Firestore в режиме запуска

При предварительном просмотре приложения в режиме запуска может появиться следующее сообщение об ошибке:

Правила безопасности Firestore: отсутствуют или недостаточно разрешений

Это происходит, когда правила Firestore конфликтуют с разрешениями, необходимыми для запроса в вашем приложении.

Предварительные требования
  • Вы используете Firebase Firestore в проекте FlutterFlow.
  • В вашем проекте настроен один или несколько запросов Firestore.

Эта ошибка обычно возникает в следующих случаях:

  • Правила Firestore запрещают любому пользователю чтение базы данных.
  • Страница пытается выполнить запрос до аутентификации пользователя (например, запрос пользовательских данных на странице входа).

Пример:

  • Если правила Firestore настроены следующим образом:
  rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}

Любой запрос Firestore завершится неудачей, поскольку чтение и запись запрещены.

  • Если правила разрешают доступ только аутентифицированным пользователям:

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

    И запрос размещен на странице до входа пользователя (например, на экране входа), это вызовет ошибку.

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

Выполните следующие шаги, чтобы исправить эту ошибку:

  • Проверьте правила Firestore

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

  • Настройте размещение запросов

    Убедитесь, что запросы, требующие аутентификации, не используются на экранах, доступных неаутентифицированным пользователям.

  • Используйте условную видимость

    Если запрос должен присутствовать на экране до входа, оберните его в условную логику, чтобы он выполнялся только после входа пользователя.

подсказка

Тестируйте запросы с помощью консоли режима запуска и проверяйте логи браузера для получения более детальной информации об ошибках. Используйте валидацию схемы Firestore в FlutterFlow, чтобы убедиться в правильном развертывании правил.