【问题标题】:error while imlpementing search text for the firestore list in flutter在flutter中为firestore列表执行搜索文本时出错
【发布时间】:2021-05-08 15:12:58
【问题描述】:

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

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

错误:“查询”类型不是“流”类型的子类型

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

【问题讨论】:

    标签: firebase flutter search google-cloud-firestore flutter-listview


    【解决方案1】:
    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. 请看下面的蒸汽情况来解决它。

    【讨论】:

      猜你喜欢
      • 2019-05-25
      • 2018-10-01
      • 2021-09-14
      • 2020-05-04
      • 2019-09-17
      • 2020-09-29
      • 2021-04-22
      • 2021-06-05
      • 2021-01-16
      相关资源
      最近更新 更多