Flutter:Firebase基本查询或基本搜索代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter:Firebase基本查询或基本搜索代码相关的知识,希望对你有一定的参考价值。
主要概念是显示包含搜索字母表的文档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
而不是StreamBuilder
和implement search manually
来自上面存储的模型列表。
另一答案
这是另一个搜索代码,这将在火灾基础数据库中搜索,qazxsw poi
以上是关于Flutter:Firebase基本查询或基本搜索代码的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Flutter Firebase 应用中搜索并向附近的人发送通知?
Flutter-如何在firebase查询中使用逻辑AND以及如何更新数据?