【问题标题】:Flutter - Firebase Realtime Database ProblemFlutter - Firebase 实时数据库问题
【发布时间】:2021-04-09 03:11:15
【问题描述】:

我最近接触了颤振的世界,现在我遇到了一个问题,实际上我需要在实时数据库中第一次记录数据期间进行编写。

我创建了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注册登录系统正常,但是数据库没有写

有什么帮助吗?

【问题讨论】:

  • 你使用了哪些 Firebase 规则?
  • { "rules": { ".read": "true", ".write": "true" } }
  • 你有什么错误吗?
  • 不,它只是没有写任何东西,我也尝试添加一个等待
  • 做`打印(FirebaseAuth.instance.currentUser.email)

标签: flutter firebase-realtime-database


【解决方案1】:

看来您正在使用新版本的 firebase auth。 currentUser 属性不返回 Future,请尝试以下操作:

void writeDB() async{
    User user =  _firebaseAuth.currentUser;
    await databaseReference.child('user').set({
      'email': FirebaseAuth.instance.currentUser.email,
      'name': "",
      'nick': "",
      "score": "0"
    });
  }

【讨论】:

  • 我按照你说的做了。无论如何它都不起作用
  • 在 writeDB() 方法中添加断点
  • 完成,没有任何改变
  • 试试void writeDB() async{ await databaseReference.child('user').set({ "score": "0" }); }
  • 在登录方法中做 print(result.user)
猜你喜欢
  • 2021-07-01
  • 2021-04-22
  • 2020-04-05
  • 2020-08-13
  • 1970-01-01
  • 2022-08-05
  • 2023-03-06
  • 1970-01-01
相关资源
最近更新 更多