0

I'm want to register a user in Cloud Firestore, for that i have 2 diferent screens in Android Studio (FormCadastro1 and FormCadastro2) the problem is import the selected item of every spinner in FormCadastro1 and bring then to FormCadastro2, and then send then to Cloud Firestore.

I'm thinking about to import class FormCadastro1 to FormCadastro2, if there is another way to do it please tell me.

FormCadastro1

   public class FormCadastro1 extends AppCompatActivity {

    Spinner edit_spempr, edit_sparea, edit_spsetor, edit_spcargos;
    Button bt_cadastrar;
    Usuarios usuarios;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_form_cadastro1);
        getSupportActionBar().hide();
        IniciarComponentes();


        ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.spItemCargos, android.R.layout.simple_spinner_item);
        edit_spcargos.setAdapter(adapter);

        ArrayAdapter adapter1 = ArrayAdapter.createFromResource(this, R.array.spItemEmpresa, android.R.layout.simple_spinner_item);
        edit_spempr.setAdapter(adapter1);

        ArrayAdapter adapter3 = ArrayAdapter.createFromResource(this, R.array.spItemArea, android.R.layout.simple_spinner_item);
        edit_sparea.setAdapter(adapter3);

        ArrayAdapter adapter2 = ArrayAdapter.createFromResource(this, R.array.spItemSetor, android.R.layout.simple_spinner_item);
        edit_spsetor.setAdapter(adapter2);

         String Empr = edit_spempr.getSelectedItem().toString();
         String Area = edit_sparea.getSelectedItem().toString();
         String Setor = edit_spsetor.getSelectedItem().toString();
         String Cargo = edit_spcargos.getSelectedItem().toString();


        usuarios = new Usuarios();
        bt_cadastrar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {


                Intent intent = new Intent(FormCadastro1.this, FormCadastro2.class);
                startActivity(intent);

            }
        });




    }

    private void IniciarComponentes() {

        edit_sparea = findViewById(R.id.spArea);
        edit_spempr = findViewById(R.id.spEmpresa);
        edit_spsetor = findViewById(R.id.spSetor);
        edit_spcargos = findViewById(R.id.spCargos);
        bt_cadastrar = findViewById(R.id.btnCadastrar);

    }


}

FormCadastro 2

public class FormCadastro2 extends AppCompatActivity{


        EditText edit_nome, edit_senha, edit_email, edit_confsenha, edit_tel;
        Button bt_Próximo;
        String[] mensagens = {"Preencha todos os campos", "Cadastro realizado com sucesso"};
        String UID;
        String ID;
        TextView MainActivityPasswordError, MainActivityConfirmPassError;
        Usuarios usuarios;
        FirebaseFirestore db = FirebaseFirestore.getInstance();



        //1.Qual layout será exibido
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_form_cadastro2);
            getSupportActionBar().hide();


            IniciarComponentes();
            usuarios = new Usuarios();
            CollectionReference reff = db.collection("Usuarios");
            bt_Próximo.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    //3.1.Convertendo o texto em string ao clicar no botão
                    String nome = edit_nome.getText().toString().trim();
                    String email = edit_email.getText().toString().trim();
                    String senha = edit_senha.getText().toString().trim();
                    String tel = edit_tel.getText().toString().trim();


                    //3.2.Tratando exceções
                    if (nome.isEmpty() || email.isEmpty() || senha.isEmpty() || tel.isEmpty()) {
                        Snackbar snackbar = Snackbar.make(view, mensagens[0], Snackbar.LENGTH_SHORT);
                        snackbar.setBackgroundTint(Color.WHITE);
                        snackbar.setTextColor(Color.BLACK);
                        snackbar.show();

                    } else {

                        CadastrarUsuario(view);

                        Intent intent = new Intent(FormCadastro2.this, FormLogin.class);
                        startActivity(intent);


                    }
                }
            });

        }


        public void SalvarDadosUsuario() {

            String nome = edit_nome.getText().toString().trim();
            String email = edit_email.getText().toString().trim();
            String senha = edit_senha.getText().toString().trim();
            String tel = edit_tel.getText().toString().trim();
            String empresa = //edit_spempresa selected item
            String area = //edit_sparea selected item
            String setor = //edit_spsetor selected item
            String cargo = //edit_spcargos selected item


            UID = FirebaseAuth.getInstance().getCurrentUser().getUid();

            //5.2.Cria a variável
            Map<String, Object> usuarios = new HashMap<>();
            usuarios.put("nome", nome);
            usuarios.put("email", email);
            usuarios.put("senha", senha);
            usuarios.put("Tel", tel);
            usuarios.put("empresa", empresa);
            usuarios.put("area", area);
            usuarios.put("setor", setor);
            usuarios.put("cargo", cargo);
            usuarios.put("Login", UID);
            usuarios.put("ID", "");

            db.collection("Usuarios").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        Integer IDS = task.getResult().size();

                        DocumentReference documentReference = db.collection("Usuarios").document(ID = String.valueOf(IDS + 1));
                        documentReference.set(usuarios);

                        db.collection("Usuarios").document(ID).update("ID", ID);

                    }
                }
            });

        }


        private void IniciarComponentes() {

            edit_nome = findViewById(R.id.editNome);
            edit_email = findViewById(R.id.editEmail);
            edit_senha = findViewById(R.id.editSenha);
            edit_confsenha = findViewById(R.id.editConfSenha);
            edit_tel = findViewById(R.id.editTel);
            bt_Próximo = findViewById(R.id.btnPróximo);


        }

        private boolean ValidaçãoDeSenha() {
            String passwordInput = edit_senha.getText().toString().trim();
            String ConfitmpasswordInput = edit_confsenha.getText().toString().trim();
            if (passwordInput.isEmpty()) {
                MainActivityPasswordError.setText("Field can't be empty");
                return false;
            }
            if (passwordInput.length() < 5) {
                MainActivityPasswordError.setText("Password must be at least 5 characters");
                return false;
            }
            if (!passwordInput.equals(ConfitmpasswordInput)) {
                MainActivityConfirmPassError.setText("Password Would Not be matched");
                return false;
            } else {
                MainActivityConfirmPassError.setText("Password Matched");
                return true;
            }
        }

        public void CadastrarUsuario(View view) {
            String email = edit_email.getText().toString();
            String senha = edit_senha.getText().toString();

            //4.1.FirebaseAuth coletando as informações necessárias para o cadastro e as autenticando
            FirebaseAuth.getInstance().createUserWithEmailAndPassword(email, senha).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {

                    //4.2.Caso a tarefa seja completa
                    if (task.isSuccessful()) {

                        //4.3.Oque vai acontecer
                        SalvarDadosUsuario();

                        Snackbar snackbar = Snackbar.make(view, mensagens[1], Snackbar.LENGTH_SHORT);
                        snackbar.setBackgroundTint(Color.WHITE);
                        snackbar.setTextColor(Color.BLACK);
                        snackbar.show();
                    } else {
                        //4.4.Criando String erro
                        String erro;

                        try {
                            throw task.getException();

                        } catch (FirebaseAuthWeakPasswordException e) {
                            erro = "Digite um senha com no mínimo  6 carácteres";
                        } catch (FirebaseAuthUserCollisionException e) {
                            erro = "Esta conta já foi cadastrada";
                        } catch (FirebaseAuthInvalidCredentialsException e) {
                            erro = "E-mail inválido";
                        } catch (Exception e) {
                            erro = "Erro ao cadastrar usuário";
                        }

                        //4.5.Cor da mensagem
                        Snackbar snackbar = Snackbar.make(view, erro, Snackbar.LENGTH_SHORT);
                        snackbar.setBackgroundTint(Color.WHITE);
                        snackbar.setTextColor(Color.BLACK);
                        snackbar.show();

                    }

                }


            });
        }

}
ADM
  • 20,406
  • 11
  • 52
  • 83
Rodrigo
  • 13
  • 3

1 Answers1

0

Put the values from FormCadastro1 to Intent when are you launching FormCadastro2 and retrieve those when it will launch.

Important: passing data should be fully serializable and less then 1MB

powerman23rus
  • 1,297
  • 1
  • 9
  • 17