Проверьте наличие определенного значения во всех узлах, представленных в базе данных Firebase. - PullRequest
0 голосов
/ 04 февраля 2019

enter image description here

У меня есть такая структура в моем FirebaseDatabase.Я хочу проверить, существует ли key со значением 9028571487 в каком-либо из узлов в моей базе данных.Если существует, тогда я смогу получить значение ключа mess для этого конкретного узла, где присутствует это значение 9028571487.Я использую этот код:

public void Check(){
    final String phone=username.getText().toString();
    ref = database.getReference().child("Users");
    Query query=ref.orderByChild("phone").equalTo(phone);
    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot data:dataSnapshot.getChildren()){
                if(data.child(name).exists()){
                    Log.i("Present","Present");
                }
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });  

Как решить эту проблему?

1 Ответ

0 голосов
/ 04 февраля 2019

Ваш код выглядит хорошо, за исключением того факта, что вы упорядочиваете своих пользователей в соответствии со свойством phone, а вы передаете методу equalTo() имя.Чтобы решить эту проблему, передайте методу equalTo() соответствующий телефон и , а не имя.

Query query=ref.orderByChild("phone").equalTo(phone);

Редактировать:

Если вашonDataChange() метод даже не вызывается, возможно, у вас недостаточно прав.Проверьте это, используя следующие строки кода:

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
    Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...