База данных Android Firebase, проверьте, существуют ли значения

Я все еще изучаю основы кодирования Android и Firebase.

Мне нужно решить две проблемы:

  • Мне нужно проверить, существует ли школа из моей базы данных, прежде чем продолжить.
  • Мне нужно убедиться, что имя пользователя, введенное пользователем, еще не используется (все в нижнем регистре).

Моя база данных выглядит так:

app: {
    school: {
        school: "university one"
        school: "university two"
        school: "university three"
    },
    users: {
        "some-user-uid": {
            school: "university one"
            username: "myname"
        }
    }
}

Спасибо.


person Edan    schedule 25.12.2016    source источник
comment
Ваш ответ здесь. stackoverflow.com/a/36826793/3145960   -  person Reaz Murshed    schedule 26.12.2016
comment
Возможный дубликат Понимание наличия данных в Firebase   -  person Reaz Murshed    schedule 26.12.2016


Ответы (1)


Чтобы получить ссылку на базу данных firebase:

DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();

Чтобы проверить, существует ли имя пользователя или нет:

String username= "myname" ;
mDatabase.child("app").child("user").child("uid").orderByChild("username").equalTo(username).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
      if(dataSnapshot!=null && dataSnapshot.getChildren()!=null &&                                         
          dataSnapshot.getChildren().iterator().hasNext()){                     
               //Username exists
             }else {
               //Username does not exist
              }
        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {
               //Error
        }
    });

Что касается названия школы, мне интересно, как все школьные значения могут иметь один и тот же ключ (школу)?

person Saurabh Padwekar    schedule 25.12.2016
comment
Хорошо сделано, но можете ли вы объяснить, как это работает и почему onCancelled означает, что имя пользователя не существует? - person Hugo Passos; 18.10.2017