Мне нужна помощь в решении проблемы.Я новичок в Firestore, я из MySQL.У меня есть форма регистрации, где пользователь регистрируется (Restaurateur), приложение работает, данные сохраняются отлично.Проблема, однако, в том, что когда пользователь регистрируется, я не могу заблокировать регистрацию, если название ресторана совпадает с именем другого ресторана, уже присутствующего в базе данных.
В коде сначала проверьте, существует ли идентичный документ,если он не существует, я хочу проверить название ресторана, и если оно совпадает с другим именем, заблокировать все и остановить запись.
Я попытался сделать это, вставив dbristoratore.collection (" Restaurateurs "). WhereEqualTo (" name_RistoranteR ", nameRistoranteR);
всостояние если но ничего.Но если я вспоминаю это способом, он работает, но после проблемы я не знаю, как перейти к регистрации, если название ресторана было бесплатным.Код такой:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_r_r_start);
nomeristoratore =(EditText)findViewById(R.id.editText7);
cognomeristoratore =(EditText)findViewById(R.id.editText8);
nomeristorante = (EditText)findViewById(R.id.editText10);
data_nascitaristoratore =(EditText)findViewById(R.id.editText9);
id_fkristoratore =(EditText)findViewById(R.id.editText11);
numero_telefonoristoratore =(EditText)findViewById(R.id.editText12);
rGroupristoratore = (RadioGroup)findViewById(R.id.radiogroup2);
registraristoratore = (Button)findViewById(R.id.button4);
registraristoratore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registrazioneRistoratore();
}
private void registrazioneRistoratore() {
final String nomeR = nomeristoratore.getText().toString();
final String cognomeR = cognomeristoratore.getText().toString();
final String nomeRistoranteR = nomeristorante.getText().toString();
final String dataR = data_nascitaristoratore.getText().toString();
final String id_fk_R = id_fkristoratore.getText().toString();
final String numero_telefono_R = numero_telefonoristoratore.getText().toString();
final String sessoR = ((RadioButton) findViewById(rGroupristoratore.getCheckedRadioButtonId())).getText().toString();
if (nomeR.isEmpty()){
nomeristoratore.setError("Inserisci il tuo nome");
nomeristoratore.requestFocus();
return;
}
if (cognomeR.isEmpty()){
cognomeristoratore.setError("Inserisci il tuo cognome");
cognomeristoratore.requestFocus();
return;
}
if (dataR.isEmpty()){
data_nascitaristoratore.setError("Inserisci la tua data di nascita");
data_nascitaristoratore.requestFocus();
return;
}
if (dataR.length() != 10){
data_nascitaristoratore.setError("Formato data errato");
data_nascitaristoratore.requestFocus();
return;
}
if (nomeRistoranteR.isEmpty()){
nomeristorante.setError("Inserisci il nome del ristorante");
nomeristorante.requestFocus();
return;
}
dbristoratore.collection("Ristoratori").document(id_fk_R).get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.getResult().exists()) {
Toast.makeText(getApplicationContext(), "Sei già registrato", Toast.LENGTH_LONG).show();
// cognome.setError("Team with same name already exists");
//cognome.requestFocus();
} else if(("nome_ristoranteR".equals(nomeRistoranteR))
) {
dbristoratore.collection("Ristoratori").whereEqualTo("nome_ristoranteR", nomeRistoranteR);
Toast.makeText(getApplicationContext(), "Use another Name restaurant", Toast.LENGTH_LONG).show(); }
else {
//If team with same name doesn't exist, save it
dbristoratore.collection("Ristoratori").document(id_fk_R).get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
DocumentSnapshot documentSnapshot = task.getResult();
//Check if user is already in a team
//TeamMap data1 = new TeamMap(teamNameText, teamCountryText, Username);
RistoratoreMap data2 = new RistoratoreMap(nomeR, cognomeR, dataR, nomeRistoranteR, numero_telefono_R, id_fk_R, sessoR);
dbristoratore.collection("Ristoratori").document(id_fk_R).set(data2).addOnCompleteListener(new OnCompleteListener<Void>() {
// Map<String, Object> data = new HashMap<>();
// data.put("username", Username);
// db.collection("TeamUsers").document(teamNameText).set(data);
// Map<String, Object> data2 = new HashMap<>();
// data2.put("User's team", teamNameText);
// db.collection("Users").document(teamNameText).set(data2).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
startActivity(new Intent(R_r_start.this, onboarding_r.class));
Toast.makeText(getApplicationContext(), "Registrato con successo", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Errore, prova a disinstallare l'app e installarla di nuovo", Toast.LENGTH_LONG).show();
}
}
});
}
});
}
}
});}});}}
Надеюсь, я хорошо объяснил, если у вас есть идеи, как мне помочь, пожалуйста.
Спасибо