Проверьте, существует ли пользователь в базе данных, прежде чем создавать новый

Я использую firebase и angularfire для создания списка пользователей. Структура базы данных такова:

введите описание изображения здесь

Мне нужно искать, если имя пользователя существует, прежде чем создавать новое. проблема в том, что я использую автоматически генерируемые идентификаторы, а не создаю свои собственные.

Как я могу найти, если существует определенный псевдоним? Спасибо!

2 ответа

Решение

Если я нахожусь в такой ситуации, я проверю каждый ник.

Ниже приведен простой пример.

На самом деле вы должны поместить все псевдонимы в массив и проверить его в конце.

DatabaseReference myRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference def_nickname= myRef.child("user");
String input_nickname = "mickey";


ValueEventListener listener_nickname = new ValueEventListener() {
     @Override
     public void onDataChange(DataSnapshot dataSnapshot) {
          for (DataSnapshot p : dataSnapshot.getChildren()) {
                 String nickname = p.child("nickname").getValue(String.class);
                 if (input_nickname.equals(nickname)) {
                      [do something]} else { [do something]}
          }

     @Override
     public void onCancelled(DatabaseError databaseError) {

     };
def_nickname.addListenerForSingleValueEvent(listener_nickname);

Если вы уверены, что собираетесь создать свой собственный "ID", вы можете сделать:

userReference.child("otherschilds").child("nickname").setValue("mickey");

но не хорошая практика.

Другие вопросы по тегам