簡體   English   中英

我如何使用一種方法從 Firebase 實時數據庫中獲取單個值

[英]How can i fetch single value from Firebase real time database using a method

這是我打算用它從數據庫中獲取數據到文本小部件的方法

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,
)),

我已經嘗試記錄訂單數量和名稱以及幾乎所有內容的值,

一切似乎都很好我不明白是什么問題我用了三個多小時試圖尋找解決方案但失敗了

在此處輸入圖像描述

使用 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),
                              ),]
                          ),}
                        ),
                     });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM