簡體   English   中英

參數類型 'Stream<dynamic> ?' 不能分配給參數類型 'Stream<querysnapshot> ?'</querysnapshot></dynamic>

[英]The argument type 'Stream<dynamic>?' can't be assigned to the parameter type 'Stream<QuerySnapshot>?'

我正在嘗試使用 StreamBuilder 顯示來自 firestore 數據庫的 stream 文本消息。 但是由於某種原因,無法將 Stream 的參數類型分配給Querysnapshot的參數。 如果我擺脫Querysnapshot stream 構建器不再顯示錯誤,但隨后我收到錯誤:

沒有為“對象”類型定義吸氣劑“文檔”

誰能幫我解決這個問題?

Widget ChatMessageList() {
return StreamBuilder(
  stream: chatMessagesStream,
  builder: (context, snapshot) {
    return ListView.builder(
      itemCount: snapshot.data!.documents.length,
      itemBuilder: (context, index) {
        return MessageTile(snapshot.data!.documents[index].data['message']);
      },
    );
  },
);

}

出現這種信息是因為dart不知道object snapshot.data是什么樣的。 您可能需要指定將從 stream 返回的預期類型。chatMessagesStream 返回什么? 如果是Stream<Bar> ,那么寫(context, AsyncSnapshot<Bar> snapshot) ,就像官方例子中的StreamBuilder

此外,您不應從小部件直接調用 firebase。 這將創建大量復制粘貼和混亂的代碼。 您可以在這里找到一個更簡潔的架構示例: real-time-updates-with-streambuilder

設置它會有點額外的工作,但它肯定會很快得到回報,因為您在代碼中包含更多調用。

暫無
暫無

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

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