2017-02-16 14 views
0

を見つける:Firebaseデータベース、下図のように、私は構造のfirebase databseを持っている既存の値

[unique key1] 

     [key1] 
      value1 : abc 
      value2 : def 

     [key2] 
      value1 : xyz 
      value2 : pqr 

私はunique key1一意のキーを知っていると私は、任意の値abcがこのデータベースにvalue1であるかどうかを知る必要があります。私は以下のようにコードを書いていますが、常にゼロを返します。

FirebaseDatabase.getInstance().getReference().child(unique key1).orderByChild("value1").equalTo("abc").addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 

      if (dataSnapshot.getChildrenCount() == 0) { 
         Toast.makeText(context, abc, Toast.LENGTH_SHORT).show(); 
      } else { 
       Toast.makeText(context, "Not found", Toast.LENGTH_SHORT).show(); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 

誰でも自分のコードに間違いがあると指摘できますか。 ありがとうございます。

+0

ここで、abcの値を割り当てますか。 –

答えて

1

本当に近いです。 orderByChildの代わりに、特定の値を持つ子を実際に探しているので、この場合はorderByValueが必要です。したがって:

FirebaseDatabase.getInstance().getReference() 
    .child(unique key1).orderByValue().equalTo("abc") 
    .addListenerForSingleValueEvent(new ValueEventListener() { 
     public void onDataChange(DataSnapshot snapshot) { 
      for (DataSnapshot item: snapshot.getChildren()) { 
       System.out.println("Found matching value in "+item.getKey()); 
      } 
     } 
関連する問題