У меня ошибка
'W / SyncTree (31625): прослушивание по адресу / ошибка: DatabaseError: разрешение запрещено'
при отправке запроса в firebase с анонимным пользователем firebase и без причудливых правил базы данных firebase :). ... и я хочу узнать, что вызывает это сообщение.
РЕДАКТИРОВАТЬ: ошибка то же самое с существующим пользователем, означает, что пользователь входа, кажется, работает, но доступ к базе данных не.
Что я сделал до сих пор:
- Настройка firebase (включая добавление google_service.json, зависимостей в pubspec.yaml) - пока работает
создание логина следующим образом (как в примере с Google ссылка ):
Future<String> _testSignInAnonymously() async {
final FirebaseUser user = await _auth.signInAnonymously();
assert(user != null);
assert(user.isAnonymous);
assert(!user.isEmailVerified);
assert(await user.getIdToken() != null);
assert(user.providerData.length == 1);
assert(user.providerData[0].providerId == 'firebase');
assert(user.providerData[0].uid != null);
assert(user.providerData[0].displayName != null);
assert(user.providerData[0].photoUrl == null);
assert(user.providerData[0].email != null);
final FirebaseUser currentUser = await _auth.currentUser();
print(currentUser.uid);
print(currentUser.isAnonymous);
assert(user.uid == currentUser.uid);
return 'signInAnonymously succeeded: $user';
}
оператор print предоставляет идентификатор пользователя (и этот идентификатор также находится в разделе аутентификации firebase) -> мне кажется, что я вошел в систему как пользователь
реализовать вид инициализации, как в примере Google ( ссылка ):
Future<void> main() async {
final FirebaseApp app = await FirebaseApp.configure(
name: 'mydbName',
options: const FirebaseOptions(
googleAppID: 'myAppId',
apiKey: 'myApiKey',
databaseURL: 'myUrl',
),
);
runApp(new MyApp(app));
}
в другом виджете с состоянием в состоянии, я пытаюсь запросить некоторые данные о базе данных:
void initState() {
final FirebaseDatabase database = new FirebaseDatabase(app: widget.app);
database.reference().child('address').once().then((DataSnapshot snapshot) {
print('Connected to database and read ${snapshot.value}');
});
super.initState();
}
Я удалил все правила в Firebase, кроме:
".read": "auth != null",
".write": "auth != null",
я использую сертификат / отпечаток пальца SHA-1 в моем firebase android app
- я использую ту же базу данных Firebase с
firebase ios app
без каких-либо проблем при использовании анонимных пользователей
Что мне нужно:
Мне нужен некоторый совет, как узнать, есть ли какие-либо проблемы с этим кодом инициализации или с логином пользователя или чем-то еще