I'm making a social media app. In app every user has a unique username. But I'm not asking the user to choose a username. Instead of forcing users to choose a username, I generate a random username based on users' name-surname.
for example
String a = name.getText.ToString();
int b = Random();
String username =a+b;
But I am currently having a problem checking username with loop. I mean, if my random generated username already exists, just generate another random username and check if it exists too.
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) {}
});
}
I want something like this;
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) {}
});
}