2017-09-28 151 views
0

假设我有一个简单的Firebase实时数据库结构,其中密钥为username,值为userid。现在我想通过username搜索userid。如果用户名匹配,这很容易。但如何得到部分匹配的答案。为了更清楚,如果我写这个使用SQL它会是这样的:Firebase查询部分字符串匹配

SELECT userid FROM tablename WHERE username LIKE 'abc%'

它会给我所有的useridusername开始在那里与abc。 如何编写这种类型的Firebase查询?了解我在android设备上使用这个,可以有很多用户。

+0

请检查我的答案,看看它是否工作。 –

+1

https://stackoverflow.com/questions/38618953/how-to-do-a-simple-search-in-string-in-firebase-database检查这个链接 – Lingeshwaran

回答

2

根据Java的管理的文档,你可以做这样的事情,也应该与Android

对于开始abc数据工作,

yourRef.orderByKey().startAt("abc").endAt("abc\uf8ff") 

的\ uf8ff是后的Unicode最常规字符,所以查询应该匹配以abc开头的所有值。

+0

是的,它的工作原理。谢谢。但是你能解释一下“\ uf8ff”吗?也将它返回一个userid数组? – NPN

+0

正如我已经解释过的那样,'\ uf8ff在Unicode中是大多数常规字符之后的,它将返回Firebase中的Query对象,您可以通过附加'ValueEventListener'获取数据。然后从datasnapshot获取数据。 –