Hola a todos bienvenidos, esta vez vamos a desarrollar un login con Firebase Authentication en el Android Studio con el lenguaje de programación Kotlin. Nuestro objetivo es realizar la administración completa de una cuenta de usuario.
A continuación, se muestra la programación de los componentes y funciones para la autenticación del usuario en la actividad SignInActivity.
Componente Login
Al hacer clic en este componente se verifica el correo y la contraseña del usuario, en caso de que sean vacíos se imprime el respectivo mensaje de error y en caso contrario se ejecuta la función signIn
Se encarga de realizar la autenticación con Firebase Authentication, en caso de que la autenticación falle se muestra el respectivo mensaje de error y en el caso de éxito se ejecuta la función reload
A continuación, se muestra la programación de los componentes y funciones para el respectivo registro de una cuenta de usuario con un correo electrónico valido
Componente Sign Up
Al hacer clic en este componente se verifica los campos correo, contraseña y confirma la contraseña según las reglas establecidos. Después de verificar los campos correctamente se procede a ejecutar la función createAccount
binding.signUpButton.setOnClickListener {val mEmail = binding.emailEditText.text.toString()val mPassword = binding.passwordEditText.text.toString()val mRepeatPassword = binding.repeatPasswordEditText.text.toString()val passwordRegex = Pattern.compile("^" +"(?=.*[‐@#$%^&+=])" + // Al menos 1 carácter especial".{6,}" + // Al menos 4 caracteres"$")if(mEmail.isEmpty() || !Patterns.EMAIL_ADDRESS.matcher(mEmail).matches()) { Toast.makeText(this, "Ingrese un email valido.", Toast.LENGTH_SHORT).show() } else if (mPassword.isEmpty() || !passwordRegex.matcher(mPassword).matches()){ Toast.makeText(this, "La contraseña es debil.", Toast.LENGTH_SHORT).show() } else if (mPassword != mRepeatPassword){ Toast.makeText(this, "Confirma la contraseña.", Toast.LENGTH_SHORT).show() } else { createAccount(mEmail, mPassword) }}
Función createAccount
Se encargar de crear una nueva cuenta de usuario con un correo electrónico y contraseña, luego se procede a ejecutar la actividad CheckEmailActivity. En caso de que falle la creación de cuenta se procede a mostrar el respectivo mensaje de error.
private funcreateAccount(email: String, password: String) { auth.createUserWithEmailAndPassword(email, password) .addOnCompleteListener(this) { task ‐>if (task.isSuccessful) {val intent = Intent(this, CheckEmailActivity::class.java)this.startActivity(intent) } else { Toast.makeText(this, "No se pudo crear la cuenta. Vuelva a intertarlo", Toast.LENGTH_SHORT).show() } }}
Verificación del correo electrónico
Es el paso final para la creación de una cuenta de usuario, veamos la programación.
Componente continuar
Al hacer clic en este componente se procede a comprobar la verificación del correo electrónico. En el caso de que el correo ya fue verificado se procede a iniciar la actividad MainActivity en caso contrario se procede a ejecutar el mensaje de error.
Se ejecuta al iniciar la actividad y procede a comprobar si ya se verifico el correo electrónico en tal caso se ejecuta la función reload y en el caso contrario se procede a ejecutar la función sendEmailVerification