Проверка username на уникальность в базе firebase
С помощью данного куска кода сохраняется username человека который он вводит
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users").child(firebaseUser.getUid());
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put(EXTRA_USERNAME, strUsername);
hashMap.put(EXTRA_SEARCH, strUsername);
reference.updateChildren(hashMap);
Но как сделать проверку? Если например такой username уже есть, то человека просят ввести другой.
Ответы (1 шт):
Автор решения: Samoilov
→ Ссылка
Я нашел ответ)
final DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");
final HashMap<String, Object> hashMap = new HashMap<>();
Query query = reference
.orderByChild("username")
.equalTo(strUsername);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.getChildrenCount()>0) {
//username found
Toast.makeText(getContext(), "Введите другое имя", Toast.LENGTH_LONG).show();
}else{
// username not found
hashMap.put("username", strUsername);
reference.child(firebaseUser.getUid()).updateChildren(hashMap);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});