Как сделать запрос на основе конкретного свойства в базе данных Firebase в Android? - PullRequest
0 голосов
/ 27 июня 2018

это мои правила БД:

"rules": {
".read": "true",
"users": {
  "$uid": {
    ".read": "true",
    ".write": "$uid === auth.uid"
  }
},

вот так выглядит мой стол:

users
4BBlhgTyY3fD3jGYnV7SQavDasM2
     DateOfBirth: --
     Email: 
     Name: 
     PhoneNo: 
     Sex: 
     UserType: 
4zTTI5HajjNOlsfnzvQN9FoDshN2
     DateOfBirth: 
     Email: 
     Name: 
     PhoneNo: 
     Sex: 
     UserType: 

Я пытаюсь выполнить запрос и найти узлы на основе определенного типа UserType, например, когда UserType имеет значение «Child», но это не дает мне никакого результата, а datasnapshot имеет значение null. Что я делаю неправильно? как я могу решить это?

1 Ответ

0 голосов
/ 27 июня 2018

Это то, что я изменил, и теперь оно работает:

Запрос Query = mDatabase.child ("users"). OrderByChild ("UserType"). EqualTo (Patient);

    query.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if(dataSnapshot!=null) {
                Log.e("TAG", String.valueOf(dataSnapshot.child("uid").child("Name")));
                int i=0;
                for(DataSnapshot snapshot : dataSnapshot.getChildren()){
                    String userName = snapshot.child("Name").getValue(String.class);
                    Pt.add(userName);

                }
            }
            else
                Toast.makeText(getApplicationContext(), "Datasnapshot is null", Toast.LENGTH_SHORT).show();
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {
            Log.e(TAG, "onCancelled: " + databaseError.getMessage());
        }

    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...