Android dart:获取类似“SQL”的SQL%text%";从firebase数据库快照进行搜索
我目前正在我的应用程序中使用搜索功能。这将获取我的firebase数据库快照的引用。我正在为此使用firebaseDatabase包 目前我正在使用这个搜索我的数据库Android dart:获取类似“SQL”的SQL%text%";从firebase数据库快照进行搜索,android,string,dart,flutter,Android,String,Dart,Flutter,我目前正在我的应用程序中使用搜索功能。这将获取我的firebase数据库快照的引用。我正在为此使用firebaseDatabase包 目前我正在使用这个搜索我的数据库 FirebaseDatabase.instance.reference().child('products').orderByChild('title').equalTo(searchQuery) searchQuery变量是用于搜索数据库的字符串。这将返回标题等于searchQuery的产品列表 searchQuery = '
FirebaseDatabase.instance.reference().child('products').orderByChild('title').equalTo(searchQuery)
searchQuery变量是用于搜索数据库的字符串。这将返回标题等于searchQuery的产品列表
searchQuery = 'hello';
title1 = 'hello';
title2 = 'hello there';
只是现在
searchQuery == title1;
searchQuery != title2;
但我也希望这个能被退回
searchQuery == title2;
这是否可能以我目前使用的方式实现?您正在寻找一个
包含的查询,但Firebase不提供该查询。您可以通过查找equalTo
或endAt
或startAt
的值来优化实际查询(您也可以使用这些方法)。不过,提出三个请求的成本很高
如果数据库不大且数据不敏感,我建议提取整个数据并进行客户端筛选,如图所示。我看到像.equalsTo(query++“\nf8ff”这样的查询将返回查询文本后面的所有内容。因此,query“hello”+“\nf8ff”也将返回“hello there”。因此我认为“\nf8ff”+“there”+”“\nf8ff”也会返回“hello there”,但事实并非如此。我不知道为什么没有实现这样一个基本查询:(您在哪里看到的?我使用此方法找到了多篇帖子。问题是您只能查询“abc%”,而不能查询“%abc%”):/