I'm making a social media app. In app every user has unique username. But i'm not asking 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'm am currently having problem to check username with loop. I mean if my random generated username is already exist just generate another random username and check it if it is exits 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) {
}
});
}