2016-12-09 11 views
1

"A"などの文字列を使用してデータベースを検索しようとしています。私はちょうどこのFirebaseチュートリアルCommon SQL Queries converted for the Firebase Database - The Firebase Database For SQL Developers #4を見ていたし、それは(特定の場所に)文字列のためのデータベースを検索するために、あなたが使用しなければならない、と説明している:Firebaseデータベース検索クエリ

firebase.database().ref.child("child_name_here") 
    .queryOrdered(byChild: "child_name_here") 
    .queryStarting(atValue: "value_here_uppercase") 
    .queryEnding(atValue: "value_here_uppercase\\uf8ff") 

あなたは終了値としてで2 \\を使用する必要があります。 1つを得るためのエスケープ文字\

Firebaseデータベースでこれを試しても、動作しません。

databaseReference.child("Schools") 
    .queryOrdered(byChild: "name") 
    .queryStarting(atValue: "A") 
    .queryEnding(atValue: "A\\uf8ff") ... 

私はFirebaseからスナップショットを印刷するに行く

が、私は戻って取得:

{ 
    "Schools": { 
     "randomUID": { 
      "location" : "anyTown, anyState", 
      "name" : "anyName" 
     } 
    } 
} 

はここに私のクエリです:ここに私のデータベースです。

終了コード.queryEnding(atValue: "A\\uf8ff")を取り除くと、Schoolsノードのすべての学校が返されます。

Stringを使用してFirebaseデータベースを検索するにはどうすればよいですか?

+0

Firebaseデータベースクエリでは大文字と小文字が区別されます。 JSONのサンプルでは、​​「A」で始まる学校名はなく、「a」(小文字)で始まる学校名のみです。 –

+0

あなたはこれを知っているかもしれませんが、わかりやすくするために、そのテクニックは、文字「A」で始まり、部分文字列ではない文字列*のみを検索します。 Firebaseは部分文字列を直接検索することはできませんので、他の自己作成メソッドを使用する必要があります。 – Jay

答えて

0

queryStarting()およびqueryEnding()をnumberに使用できます。たとえば、someFieldを3から10まで変化させたオブジェクトを取得できます。

検索文字列:queryEqualToValue()を使用して文字列全体を検索できます。

関連する問題