2017-09-17 10 views
1

私はAndroidベースのアプリケーションでfirebaseリアルタイムデータベースを実装しています。私は検索機能を追加しようとしており、私は開始単語の一致だけでデータベースを検索することができます。以下 は私のデータベースのスナップショットです:Firebaseデータベースの文字列をどこでも検索する方法 - Android

enter image description here

私はMOVIENAMEを照会しています。今は、クエリ文字列がPets/Pe/petかどうかを調べることができます。しかし、私が動物を検索すると、結果はゼロになります。だから、基本的に私が探しているのは、文字列内の任意の場所にあるクエリテキストでデータベースを検索することです。つまり、私は動物/ペットを検索することができ、検索クエリを含む結果を得るはずです。

これまでのコードは以下のとおりです。

mDatabaseReference.child("recent").getRef().orderByChild("movieName").startAt(query) 
        .endAt(query + "\uf8ff") 
+1

[この例](https://github.com/firebase/functions-samples/tree/master/fulltext-search)を見てください。 AlgoliaとFirebaseのクラウド機能では、フルテキスト検索が非常に簡単になります。 –

答えて

0

まず、正確な子を確認してFirebaseを初期化します。

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference animalsRef = rootRef.child("Animals"); 
ValueEventListener eventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     Boolean found; 
     String search = "Animals"; 
     for(DataSnapshot ds : dataSnapshot.getChildren()) { 
      String movieName = ds.child("movieName").getValue(String.class); 
      found = movieName.contains(search); 
      Log.d("TAG", movieName + "/" + found); 
     } 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}; 
animalsRef.addListenerForSingleValueEvent(eventListener); 

見ての通り、私たちはすべての映画の名のデータベースを照会してから検索: https://stackoverflow.com/a/34537728/5746625

+0

私はすでに正確な子供を得ることに成功しています。私は完全一致を望んでいません。私が探している文字列が文字列全体のどこにあっても検索したい。 –

+0

あなたはfirebaseでそれを行うことはできません – TheSwiftGuy77

1

は、次のコードを使用してください文字列内の文字列のためのWiki検索するには、この答えを見てmovieName内の目的の単語に対して

関連する問題