Я не могу читать / записывать данные в firestore с действующими правилами.
Я могу получить доступ к своим данным и выполнять операции с ними без установленных правил, как показано ниже:
match /{document=**} {
allow read, write: if true;
}
Но я получаю сообщение об ошибке «Отказано в доступе» по следующим правилам.
match /{document=**} {
allow read, write: if request.auth.uid != null;
}
Вот мой код дротика:
if (uid == null) {
user = await a.currentUser();
uid = user.uid;
}
DocumentReference docRef = firestore.collection('users').document(uid);
CollectionReference locations = docRef.collection('locations');
await locations.document().setData(<String, double>{
'latitude': latitude,
'longitude': longitude,
});
Я могу вспомнить два сценария, в которых этот запрос не выполняется:
- request.auth.uid== ноль. Но у меня есть пользователь, вошедший с помощью firebase auth перед этим запросом.
- Мои правила безопасности и запрос не совпадают.
Пожалуйста, помогите мне отладить эту проблему.
Редактировать 1:
- Я прошел аутентификацию пользователя во время моего запроса Firebase, так как я изменил код для ввода, только если пользователь аутентифицирован, как показано ниже:
User u = await a.onAuthStateChanged.first;
if (u != null) {....}
Мне удалось читать / писать с аутентификацией с использованием симулятора Firebase.
Есть ли возможность распечатать фактический запрос, отправляемый в Firebase из dart, с помощью пакета cloud_firestore?
Редактировать 2
- Firestore.instance работает с правилами
- Firebaseapp, настроенный для моего конкретного приложения с помощью конфигурации, параметры не работают.
Любая помощь в том, почему это может происходить?