【问题标题】:How can i fetch single value from Firebase real time database using a method如何使用方法从 Firebase 实时数据库中获取单个值
【发布时间】:2021-04-03 18:39:06
【问题描述】:

这是我打算用它从数据库中获取数据到文本小部件的方法

getSnapshotData (String child){
    final User _firebaseUser = firebaseAuth.currentUser;
    databaseReference
      .child("users")
      .child(_firebaseUser.uid)
      .once()
      .then((DataSnapshot dataSnapshot) {
        return dataSnapshot.value('${child}');
      }
    );

这是我的文本小部件,用于从数据库中检索名称

Text(
  'Hi,' + ' ${getSnapshotData('name')}',
   style: TextStyle(
   color: Colors.black,
   fontSize: 32,
)),

这是我的文本小部件,用于从数据库中检索订单计数

Text(
   getSnapshotData('orders_count').toString(),
   style: TextStyle(
   color: Colors.black,
   fontSize: 32,
)),

我已尝试记录订单数量和名称以及几乎所有内容的值,

一切似乎都很好我不明白我用了三个多小时试图寻找解决方案但失败了的问题

【问题讨论】:

    标签: firebase flutter firebase-realtime-database


    【解决方案1】:

    使用 Future Builder 获取数据

    先创建getPost()方法返回qn

    Future getPosts() async {
        var firestore = Firestore.instance;
        QuerySnapshot qn = await firestore.collection("your_collecttion_name").getDocuments();
        return qn.documents;
      }
    

    使用之后,未来的构建器会获取数据

    return Container(
          child: FutureBuilder(
              future: getPosts(),
              builder: (_, snapshot) {
                if (snapshot.connectionState == ConnectionState.waiting) {
                  return Center(
                    child: Text("Loading..."),
                  );
                } else {
                  return ListView.builder(
                      itemCount: snapshot.data.length,
                      itemBuilder: (_, index) {
                        return Column(
                             children: <Widget>[
                                 Text(
                                   snapshot.data[index].data['your_data']
                                    .toString(),
                                    style: TextStyle(
                                     fontSize: 20,
                                     fontWeight: FontWeight.w500),
                                  ),]
                              ),}
                            ),
                         });
    

    【讨论】:

    • 嘿抱歉延迟回复我在非洲互联网已关闭我没有使用 firestore 我正在使用实时数据库并且您使用的语法是用于 firestore
    猜你喜欢
    • 2020-06-19
    • 2020-12-01
    • 2021-10-21
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多