Я создаю приложение для социальных сетей. В приложении каждый пользователь имеет уникальное имя пользователя. Но я не прошу пользователя выбрать имя пользователя. Вместо того, чтобы заставлять пользователей выбирать имя пользователя, я генерирую случайное имя пользователя на основе имени-фамилии пользователя.
например
String a = name.getText.ToString();
int b = Random();
String username =a+b;
Но у меня сейчас проблема с проверкой имени пользователя в цикле. Я имею в виду, если мое случайное сгенерированное имя пользователя уже существует, просто сгенерируйте другое случайное имя пользователя и проверьте его, если оно тоже есть.
final boolean[] durum = {false};
while(durum[0] ==false){
String usernameilk = namesurname.getText().toString().replace(" ","").replace("ç","c").replace("ğ","g").replace("ı","i").replace("ö","o").replace("ş","s").replace("ü","u").toLowerCase();
int random = randomInt();
String stringsayı=Integer.toString(random);
final String usernameson = usernameilk+"."+stringsayı;
database.child("users").child(usernameson).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(!dataSnapshot.exists()){
user.setPassword(password.getText().toString());
user.setEmail(email.getText().toString());
user.setNamesurname(namesurname.getText().toString());
durum[0] =true;
progressDialog.hide();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
Я хочу что-то вроде этого;
for (int i = 0; i < 10000; i++) {
int random = randomInt();
String randomusername = namesurname.getText().toString()+random;
database.child("users").child(randomusername).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(!dataSnapshot.exists()){
//if random username is not exist create user and finish loop
database.child("users").setValue(user);
break;
//but if its exist then countinue loop
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}