Ошибка разрешений 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, чтобы убедиться в правильном развертывании правил.