Проверьте, существует ли пользователь в базе данных, прежде чем создавать новый
Я использую 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");
но не хорошая практика.