使用Firebase过滤search?

我正在寻找一个search栏,用户可以通过Firebase上的用户进行search,并在键入时更新桌面视图,而不是仅search完全匹配。

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) { if searchBar.text == nil || searchBar.text == "" { inSearchMode = false tableView.reloadData() } else { inSearchMode = true let lower = searchBar.text!.lowercaseString filteredPeopleArray = peopleArray.filter({$0.title.hasPrefix(lower) != nil}) tableView.reloadData() } 

此代码适用于此,但是这需要加载我为当前在firebase上的每个用户填充arrays,并在应用程序打开时不断添加新用户。

我看到,parsing曾经有一个“find用户的关键字包含string”,你会做一个查询parsing你的textDidChange,但我没有看到任何类似的Firebase。 另外,每次input一个字母时,是否会以任何方式向数据库发送查询?

像Instagram一样使用什么方法,例如你键入一些字母,然后从名称中带有前缀的服务器返回一个用户列表? 所以像“博”可能会返回一个鲍勃和bobbys列表。

我无法评论,但这里有一篇文章帮助我。

https://www.quora.com/How-would-you-search-a-Firebase-Realtime-Database-with-a-substring

假设你有下面的firebase数据

 { "lambeosaurus": { "dimensions": { "height" : 2.1, "length" : 12.5, "weight": 5000 } }, "stegosaurus": { "dimensions": { "height" : 4, "length" : 9, "weight" : 2500 } } } 

下面的例子find所有以字母“b”开头的恐龙。

 var ref = new Firebase("https://example.firebaseio.com/"); ref.orderByKey().startAt("b").endAt("b\uf8ff").on("child_added", function(snapshot) { console.log(snapshot.key()); });