У меня есть работающее приложение, которое использует пакет cloud_firestore, оно хорошо работает с Android и iOS.Но моя база данных «разрешить чтение, запись: если истина», и поэтому Google продолжает напоминать мне, чтобы исправить эту ненадежность.Это я сделал:
- включая firebase_auth
- изменив мои правила на firebase
- создав учетную запись почты / пароля
- реализуя процедуру входа в систему
- изменив правила на "разрешить запись: if request.auth! = Null;"
Я думаю, я все сделал нормально.В приложении это выглядит так:
print("User ${(await FirebaseAuth.instance.currentUser()).email})");
Это дает мне почту моей учетной записи.Также у меня есть слушатель onAuthStageChanged, и я получаю то, что ожидал.Поэтому я предполагаю, что вход в систему работал.
Но если я пытаюсь получить доступ к базе данных, например, с помощью .setData (), я получаю ошибку
W / Firestore (4411): (19.0.0) [Firestore]: запись не удалась в ...: Status {code = PERMISSION_DENIED, description = отсутствует или недостаточно разрешений. ,Ause = null}
Мне показалось, что пакет auth не информируетпакет пожарного магазина правильно.В журналах я вижу
D / FirebaseAuth (5698): Уведомление слушателей токена id о пользователе (...).
Я ожидаю что-то вроде "Firestore: полученный токен ...", но это не приходит.
Должен ли я быть осторожным с порядком инициализации?Мой -
- _app = await Firebase.App.configure ...
- _firestore = Firestore (app: _app);
- await FirebaseAuth.instance.signInWithEmailAndPassword...
Я пробовал на некоторых устройствах Samsung и OnePlus с Android 8 и 9.
Кто-нибудь намекает на кого-то?