【发布时间】:2018-11-25 00:12:13
【问题描述】:
主要概念是显示包含搜索字母的文档或字段。
搜索栏得到给定的输入,它发送到_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'],
);
}
主要概念是显示包含搜索字母的文档或字段
搜索栏得到给定的输入,它发送到_firebasesearch(),但作为回报没有任何结果,上图是我的数据库结构,试图弄清楚一个多星期,
【问题讨论】:
-
正确地格式化代码使得人们更有可能真正尝试理解它。应该不会太难。
-
您是在搜索栏中提供完整的标题,如
new program,还是只是标题的一部分? -
@VinothKumar "new" 够了兄弟,我不会搜索全文
-
@VinothKumar 我听不懂兄弟,只是新手
-
我认为我们现在不能查询部分文本
标签: firebase-realtime-database dart google-cloud-firestore flutter flutter-dependencies