Boa tarde, sou novo na programação Android e usando Firebase.
Eu quero fazer uma consulta no Firebase pra saber se o campo já está cadastrado. Igual fazemos com “email” se o email ja existe no banco nao pode cadastrar email igual.
Eu quero fazer essa consulta usando o Firebase pra saber se ja existe o campo “Usuario/Apelido”. tornar esse campo como único…
Alguém pode me ajudar?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cadastro);
nome = (EditText) findViewById(R.id.edtNome);
email = (EditText) findViewById(R.id.edtEmail);
senha = (EditText) findViewById(R.id.edtSenha);
usuarioId = (EditText) findViewById(R.id.edtUsuario);
botaoCadastrar = (Button) findViewById(R.id.btCadastrar);
botaoCadastrar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
usuario = new Usuario();
usuario.setNome(nome.getText().toString());
usuario.setEmail(email.getText().toString());
usuario.setSenha(senha.getText().toString());
usuario.setUsuarioId(usuarioId.getText().toString());
cadastrarUsuario();
}
});
}
private void cadastrarUsuario(){
autenticacao = ConfiguracaoFireBase.getFireBaseAutenticacao(); //responsavel por fazer autenticacao firebase
autenticacao.createUserWithEmailAndPassword(usuario.getEmail(), usuario.getSenha()).addOnCompleteListener(CadastroActivity.this, new OnCompleteListener<AuthResult>() {
// metodo para verificar se realmente deu certo o cadastro do usuario
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful() ){
Toast.makeText(CadastroActivity.this, "Sucesso ao cadastrar usuário", Toast.LENGTH_LONG).show();
//FirebaseUser usuarioFirebase = task.getResult().getUser();
String identificadorUsuario = Base64Custom.codificarBase64(usuario.getUsuarioId());
usuario.setId(identificadorUsuario);
usuario.salvar();
// apos o cadastro ele faça o login novamente, senao ele ja fica logado!
//autenticacao.signOut();
//finish();
abrirLoginUsuario();
}else{
//tratamento de excecoes
String erroExcecao = "";
try{
throw task.getException();
} catch (FirebaseAuthWeakPasswordException e) {
erroExcecao = "Digite uma senha mais forte, contendo letras e números! ";
} catch (FirebaseAuthInvalidCredentialsException e) {
erroExcecao = "O email é inválido, digite um novo e-mail";
} catch (FirebaseAuthUserCollisionException e) {
erroExcecao = "Email já em está uso!";
} catch (Exception e) {
erroExcecao = "Erro ao efetuar cadastro!";
e.printStackTrace();
}
Toast.makeText(CadastroActivity.this, "Erro: "+ erroExcecao, Toast.LENGTH_LONG).show();
}
}
});
}