2017-02-16 5 views
0

У меня есть firebase Databse структуры, как показано ниже:Firebase базы данных, найти существующее значение

[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()); 
      } 
     } 

 Смежные вопросы

  • Нет связанных вопросов^_^