2017-09-28 29 views
0

単純なファイヤーベースリアルタイムデータベース構造があり、キーがusernameで、値がuseridであるとします。今度はuseridusernameで検索したいと思います。ユーザー名が一致すれば、それは非常に簡単です。部分一致の答えを得る方法私はそれはようなものになるだろう、この使用してSQL記述した場合に、より明確にするために:部分的な文字列の一致を伴うfirebaseクエリ

SELECT userid FROM tablename WHERE username LIKE 'abc%'

を、それは私にabcを持つすべてのuseridどこusername開始を与えるだろう。 firebaseのこのタイプのクエリを書くにはどうすればいいですか?私はアンドロイドデバイスでこれを使用しており、多くのユーザーが存在する可能性があることを理解する。あなたは、それはまたabcで始まるデータについてのAndroid

で動作するはずです。このような何かを行うことができますJavaの管理者のドキュメントによると

+0

私の答えをチェックし、それが機能しているかどうかを確認してください。 –

+1

https://stackoverflow.com/questions/38618953/how-to-do-a-simple-search-in-string-in-firebase-databaseこのリンクを確認してください – Lingeshwaran

答えて

2

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

の\ uf8ffがUnicodeで最も通常の文字の後にありますしたがって、クエリはabcで始まるすべての値と一致する必要があります。

+0

はい、動作します。ありがとう。しかし、もう少し説明することができます "\ uf8ff"。また、それはユーザーIDの配列を返しますか? – NPN

+0

'\ uf8ffはUnicodeで最も普通の文字の後にあり、Firebaseで' Query'オブジェクトを返すので、 'ValueEventListener'を付けることでデータを取得できます。その後、datasnapshotからデータを取得します。 –

関連する問題