在 flutter 中执行 firestore 列表的搜索文本时出错

error while imlpementing search text for the firestore list in flutter

我正在为 firestore 数据库的 flutter 应用程序中的列表中的搜索操作实现以下代码。

当没有执行搜索时,它可以很好地加载列表,但是当我尝试使用相同的搜索操作时,它给我错误

错误:类型 'Query' 不是类型 'Stream'

的子类型
Scaffold(
  appBar: AppBar(
    elevation: 0,
    title:                     Container(
      padding: EdgeInsets.symmetric(horizontal: 10),

      child: Card(
        child: TextField(
          decoration: InputDecoration(
              prefixIcon: Icon(Icons.search), hintText: 'Search...'),
          onChanged: (val) {
            setState(() {
              query = val;
            });
          },
        ),
      ),

    ),

    leading: IconButton(
        icon: Icon(
          Icons.exit_to_app,
          color: Colors.red[50],
        ),
        onPressed: () {
          logout();
        }),
  ),
  body:

  Container(
          child: Column(
            children: [
             


              Container(
                child: Expanded(
                  child: StreamBuilder<QuerySnapshot>(
                    stream: (query != "" && query != null)
                        ? FirebaseFirestore.instance
              .collection('momos_nv')
      .orderBy('itemName')
      .startAt([query])
      .endAt([query + '\uf8ff'])
                        : FirebaseFirestore.instance.collection("momos_nv").snapshots(),
                    builder: (context, snapshot) {

                      if (snapshot.hasError) {
                        return Text('Something went wrong');
                      }

                      if (snapshot.connectionState == ConnectionState.waiting) {
                        return Text("Loading");
                      }

                      return ListView.builder(
                          itemCount: snapshot.data.docs.length,
                          itemBuilder: (context, index){

                   
                            return ListTile(title:Text(snapshot.data.docs[index]['itemName'],
                            ),
                            );
                          });

                    },
                  ),
                ),
              ),

            ],
          ),
        ));

我无法解决它,因为在搜索完成后我无法理解哪里出了问题,我参考了 GitHub 中的任何示例,该示例工作正常,但在复制时同样如此效果不佳。请告知正确的实施方式。

出现错误我刚开始在搜索框中输入内容。

我提到的这个例子来自 Github referred sample code

Container(
                child: Expanded(
                  child: StreamBuilder<QuerySnapshot>(
                    stream: (query != "" && query != null)
                        ? FirebaseFirestore.instance
              .collection('momos_nv')
      .orderBy('itemName')
      .startAt([query])
      .endAt([query + '\uf8ff']).snapshots() ----> you have missed the snapShot here
                        : FirebaseFirestore.instance.collection("momos_nv").snapshots(),
  1. 如果条件

    你错过了流中的快照
  2. 请看下面的steam情况解决