2016-07-25 43 views
0

Firebase queryEqualToValue将项目EQUAL转换为指定的键或值。我们如何查询项目PARTIALLY MATCH到指定的键或值?具有部分匹配值的Firebase iOS查询数据

Firebase iOS retrieve data documentation

+1

作为iOSGeek的回答表明,你可以做“打头”与火力地堡式的查询。但更广泛的'LIKE'搜索是不可能的。请参阅http://stackoverflow.com/questions/22506531/how-to-perform-sql-like-operation-on-firebase –

+0

@frankvanpuffelen是的,我想做一个LIKE搜索,我已经阅读了博文,但是该博文是在2014年,所以今天,仍然没有现成的firebase方法或功能可以用来完成LIKE搜索? – Alex

+0

在Firebase中没有直接的LIKE搜索。但是,如果正确构建数据,则可以执行[通配符搜索](http://stackoverflow.com/questions/36365157/wildcard-query-on-firebase/36366619#36366619)。这是相似的。 – Jay

回答

3

我们可以结合startAt()和ENDAT()来限制我们的查询的两端。 下面的示例查找名称以 字母“b”开头的所有恐龙:上述

let ref = Firebase(url:"https://dinosaur-facts.firebaseio.com/dinosaurs") 
ref.queryOrderedByKey().queryStartingAtValue("b").queryEndingAtValue("b\u{f8ff}") 
    .observeEventType(.ChildAdded, withBlock: { snapshot in 

    println(snapshot.key) 
}) 

在查询中使用的字符F8FF是以Unicode范围内的非常高的代码点 。因为它是在 Unicode中最常用的字符之后,所以查询将匹配以b开头的所有值。

Retrieving Data

+0

我可以知道吗“\ u {f8ff}”代表什么? – Alex

+0

@Alex回答编辑关于'f8ff'字符的更多信息 – iOSGeek