Android Firestore проверяет, существует ли поле - PullRequest
0 голосов
/ 03 февраля 2019

Мне нужна помощь в решении проблемы.Я новичок в 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();

                                        }
                                    }
                                });

                            }
                        });
                    }



                }


                    });}});}}

Надеюсь, я хорошо объяснил, если у вас есть идеи, как мне помочь, пожалуйста.

Спасибо enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...