#flutter #firebase-realtime-database
# #флаттер #firebase-realtime-database
Вопрос:
Я недавно приблизился к миру flutter, и теперь у меня проблема, на практике мне нужно записывать во время первой записи данных в базу данных реального времени.
Я создал функцию void (я уже делал ассоциацию final databaseReference = FirebaseDatabase.instance.reference();
раньше.
Это функция
void writeDB() async{
User user = await _firebaseAuth.currentUser;
FirebaseDatabase.instance.reference().child('user').equalTo(user.uid);
databaseReference.child('user').set({
'email': FirebaseAuth.instance.currentUser.email,
'name': "",
'nick': "",
"score": "0"
});
}
И это функция входа :
Future<String> signIn(String email, String password) async {
UserCredential result = await _firebaseAuth.signInWithEmailAndPassword(
email: email, password: password);
writeDB();
User user = result.user;
return user.uid;
}
Система регистрации и входа в систему с firebase работает нормально, но база данных не записывается
Любая помощь?
Комментарии:
1. какие правила firebase вы используете?
2. { «rules»: { «.read»: «true», «.write»: «true» } }
3. вы получаете какую-либо ошибку?
4. нет, он просто ничего не записывает, я также попытался добавить ожидание
5. выполните `print(FirebaseAuth.instance.CurrentUser.email)
Ответ №1:
Похоже, вы используете новую версию firebase auth. currentUser
Свойство не возвращает a Future
, попробуйте выполнить следующее:
void writeDB() async{
User user = _firebaseAuth.currentUser;
await databaseReference.child('user').set({
'email': FirebaseAuth.instance.currentUser.email,
'name': "",
'nick': "",
"score": "0"
});
}
Комментарии:
1. Я пытался, как вы мне сказали. это все равно не сработает
2. Добавьте точку останова внутри метода writeDB()
3. Сделано, ничего не изменилось
4. попробуйте
void writeDB() async{ await databaseReference.child('user').set({ "score": "0" }); }
5. В методе входа выполните печать (result.user)