Flutter:Firebase基本查询或基本搜索代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter:Firebase基本查询或基本搜索代码相关的知识,希望对你有一定的参考价值。

enter image description here

主要概念是显示包含搜索字母表的文档sor字段。

搜索栏获取给定的输入,它发送到_firebasesearch(),但作为回报没有出现,上面的图像是我的数据库结构,试图找出一个多星期。

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter_search_bar/flutter_search_bar.dart';

SearchBar searchBar;
GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();

class DisplayCourse extends StatefulWidget {
  @override
  _DisplayCourseState createState() => new _DisplayCourseState();
}

AppBar _buildAppBar(BuildContext context) {
  return new AppBar(
    title: new Text("FIREBASE QUERY"),
    centerTitle: true,
    actions: <Widget>[
      searchBar.getSearchAction(context),
    ],
  );
}

class _DisplayCourseState extends State<DisplayCourse> {
  String _queryText;

  _DisplayCourseState() {
    searchBar = new SearchBar(
      onSubmitted: onSubmitted,
      inBar: true,
      buildDefaultAppBar: _buildAppBar,
      setState: setState,
    );
  }

  void onSubmitted(String value) {
    setState(() {
      _queryText = value;
      _scaffoldKey.currentState.showSnackBar(new SnackBar(
        content: new Text('You have Searched something!'),
        backgroundColor: Colors.yellow,
      ));
    });
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      key: _scaffoldKey,
      appBar: searchBar.build(context),
      backgroundColor: Colors.red,
      body: _fireSearch(_queryText),
    );
  }
}

Widget _fireSearch(String queryText) {
  return new StreamBuilder(
    stream: Firestore.instance
    .collection('courses')
    .where('title', isEqualTo: queryText)
    .snapshots(),
    builder: (context, snapshot) {
      if (!snapshot.hasData) return new Text('Loading...');
      return new ListView.builder(
        itemCount: snapshot.data.documents.length,
        itemBuilder: (context, index) =>
            _buildListItem(snapshot.data.documents[index]),
      );
    },
  );
}

Widget _buildListItem(DocumentSnapshot document) {
  return new ListTile(
    title: document['title'],
    subtitle: document['subtitle'],
  );
}

主要概念是显示包含搜索字母表的文档sor字段

搜索栏获取给定的输入,它发送到_firebasesearch(),但是在重新生成时没有出现,上面的图像是我的数据库结构,试图计算超过一周,

答案

问题是你期待来自firestore的结果title is equal to queryText不是title contains queryText

如果你想要搜索功能,你可以在get and store the firestore documents变量中使用List<Model> model而不是StreamBuilderimplement search manually来自上面存储的模型列表。

另一答案

这是另一个搜索代码,这将在火灾基础数据库中搜索,qazxsw poi

enter image description here

以上是关于Flutter:Firebase基本查询或基本搜索代码的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter Firebase 应用中搜索并向附近的人发送通知?

Firebase 大查询 - 如何从自定义事件表中检索数据

Flutter-如何在firebase查询中使用逻辑AND以及如何更新数据?

如何在 Flutter 上刷新 firebase 令牌?

Flutter - 从特定值中删除数据,Firebase 实时数据库 [重复]

如何通过模拟器查询firebase上的基本内容