首页 > 解决方案 > 我如何在颤振中从 firebse 实时数据库中检索数据

问题描述

在此处输入图像描述

我将不同用户的数据保存在他们的 uid 节点中,并且在 uid 节点中我生成了保存数据的不同密钥。我试图从键节点检索电子邮件、用户名。我尝试使用此代码获取电子邮件、用户名:- `

@override
  void initState() {
    super.initState();
    getCurrentUser();
    rootRef.child('Manager').child(loggedInUser.uid).child(accountKey);
    rootRef.once().then((DataSnapshot snap) {
     var value= snap.value;
     print(value['username']);
    }
    );
  }

` 但我得到一个空值。我如何检索电子邮件、用户名并将其显示到文本小部件。

标签: firebaseflutterdartfirebase-realtime-databasefirebase-authentication

解决方案


您需要使用 a FutureBuilder(),因为uid在上面的代码中将是 null ,因此创建一个将返回 a 的方法Future<DataSnapshot>

   Future<DataSnapshot> getData() async{
     var user = await FirebaseAuth.instance.currentUser();
     final dbRef = FirebaseDatabase.instance.reference().child('Manager').child(user.uid).child(accountKey);
    return await dbRef.once();
  }

然后在里面使用它FutureBuilder

FutureBuilder(
    future: getData(),
    builder: (context, AsyncSnapshot<DataSnapshot> snapshot) {
        if (snapshot.hasData) {

推荐阅读