簡體   English   中英

在 Flutter / Dart 和 Sound Null 中檢索 firebase firestore 文檔

[英]Retrieving firebase firestore documents in Flutter / Dart and Sound Null

我正在學習 Udemy Flutter 課程,我正在學習處理 Firebase 的章節。 這個類大約有 3-4 年的歷史,它似乎足夠老了,以至於在訪問 Firebase 部分時示例完成的代碼崩潰了。 我從頭開始了一個新項目,並拼湊了一些零碎的東西來讓它大部分啟動和運行,但我現在已經走到了死胡同。 新項目和 firebase 插件是 Sound Null 而類代碼不是。 從數據庫獲取和打印數據工作正常,直到我嘗試將其連接到流。 我特別遇到了迭代接收到的文檔的問題。 當我在 for-in 循環中使用(Flutter)snapshot.data 設置消息變量並嘗試迭代返回的文檔(#1)時,我遇到了空問題。 如果沒有將類型 (#1a) 指定為 AsyncSnapshot,我無法在不可為空的情況下迭代 for-in 循環錯誤。 更改類型可以消除編譯時錯誤,但會生成“類型 _JsonQuerrySnapshot 不是 Iterable 類型的子類型”的運行時錯誤。 Dart 不是我的主要語言,我已經在谷歌上搜索了幾個小時但無濟於事。 任何幫助表示贊賞。

最終 _firestore = FirebaseFirestore.instance; //<-----在代碼的前面

      children: <Widget>[

        StreamBuilder<QuerySnapshot>(
          stream: _firestore.collection('messages').snapshots(),
          builder: (BuildContext context, AsyncSnapshot<dynamic> snapshot) { //<----Problem #1a here
            List<Text> messageWidgets = [];
            if (snapshot.hasData) {

              final messages = snapshot.data;

              for (var message in messages) { //<----------Problem #1 here
                final messageText = message.data['text'];
                final messageSender = message.data['sender'];
                final messageWidget =
                    Text('$messageText from $messageSender');
                messageWidgets.add(messageWidget);
              }
            }
            return Column(
              children: messageWidgets,
            );
          },
      

好吧,又過了一個小時左右的谷歌搜索,我找到了合適的地方。 firestore 的 flutter 插件的文檔與我正在學習的課程有很大的不同。 閱讀(ctrl-c,ctrl-v)它們我至少能夠大致理解並使程序回到正軌以完成我的課程。

暫無
暫無

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

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