我如何从颤动的firebase实时数据库中检索数据

Posted

技术标签:

【中文标题】我如何从颤动的firebase实时数据库中检索数据【英文标题】:How could i retrieve data from firebse realtime database in flutter 【发布时间】:2020-12-05 21:52:34 【问题描述】:

我将不同用户的数据保存在他们的 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']);
    
    );
  

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

【问题讨论】:

你试过 rootRef.child('Manager').child(loggedInUser.uid).child(accountKey).once().then((DataSnapshot snap) var value= snap.value;打印(值['用户名']);); 是的,我试过了,但它不起作用 【参考方案1】:

您需要使用FutureBuilder(),因为uid 在上述代码中将为空,因此创建一个返回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) 

【讨论】:

以上是关于我如何从颤动的firebase实时数据库中检索数据的主要内容,如果未能解决你的问题,请参考以下文章

从firebase实时数据库IOS Swift中检索数据

如何使用颤振从firebase实时检索数据

如何从 Firebase 实时数据库中检索/获取项目

如何从 Firebase 实时数据库中检索值?

如何从 Firebase 授权中检索信息

在颤动中从实时数据库中获取空值