Firebase is a carrier to programs, it supplies website hosting, NoSQL garage, real-time databases, social authentication, notification, and different products and services.
On this undertaking, we now have created a login and signup web page in android studio the usage of firebase so we now have used the Authentication carrier at no cost! When the person indicators up the usage of e mail and password that will get saved within the authentication database of firebase.
For login functions, the similar credentials are checked within the firebase authentication desk and if it fits with person credentials then it is going to lead you to the house display screen another way it is going to throw an error as login failed.
To start out the usage of Firebase , we want to upload Firebase to our undertaking . We will practice those steps for this procedure :
Move to Firebase Console and create a brand new undertaking. After growing our undertaking , including Firebase to our undertaking and permit the vital products and services.
After activating Firebase products and services from the console, we come to Android Studio. We permit view binding in gradle (module: software) with the intention to carry out operations on our perspectives:
buildFeatures{
dataBinding = true
viewBinding = true
}
After that , We create our fragments below the ui package deal.
Then , We designed our XML recordsdata .
package deal com.instance.registerandloginwithfirebase.ui.fragmentimport android.content material.Intent
import android.os.Package
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.navigation.Navigation
import com.instance.registerandloginwithfirebase.R
import com.instance.registerandloginwithfirebase.databinding.FragmentSignUpBinding
import com.google.firebase.auth.FirebaseAuth
magnificence SignUpFragment : Fragment() {
personal lateinit var binding: FragmentSignUpBinding
personal lateinit var firebaseAuth: FirebaseAuth
personal lateinit var globalIterator : View
override a laugh onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Package?): View? {
binding=FragmentSignUpBinding.inflate(inflater,container,false)
globalIterator = binding.buttonSignUp
firebaseAuth = FirebaseAuth.getInstance()
binding.buttonSignUp.setOnClickListener {
val username = binding.editUsername.textual content.toString()
val e mail = binding.editEmail.textual content.toString()
val password = binding.editPassword.textual content.toString()
val rePassword = binding.editRepassword.textual content.toString()
if(username.isNotEmpty() && e mail.isNotEmpty() && password.isNotEmpty() && rePassword.isNotEmpty() ){
if (password == rePassword ){
firebaseAuth.createUserWithEmailAndPassword(e mail,password).addOnCompleteListener {
if (it.isSuccessful){
val sucIntent = Intent(requireContext(),LoginFragment::magnificence.java)
startActivity(sucIntent)
}else{
Toast.makeText(requireContext(),it.exception.toString(), Toast.LENGTH_SHORT).display()
}
}
}else{
Toast.makeText(requireContext(),"Password does now not matched", Toast.LENGTH_SHORT).display()
}
}else{
Toast.makeText(requireContext(),"Fields can't be empty ", Toast.LENGTH_SHORT).display()
}
}
binding.textSignUp.setOnClickListener {
val signUpIntent = Intent(requireContext(),LoginFragment::magnificence.java)
startActivity(signUpIntent)
}
go back binding.root
}
package deal com.instance.registerandloginwithfirebase.ui.fragmentimport android.content material.Intent
import android.os.Package
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.navigation.Navigation
import com.instance.registerandloginwithfirebase.R
import com.instance.registerandloginwithfirebase.databinding.FragmentLoginBinding
import com.google.firebase.auth.FirebaseAuth
magnificence LoginFragment : Fragment() {
personal lateinit var binding: FragmentLoginBinding
personal lateinit var firebaseAuth: FirebaseAuth
personal lateinit var globalIterator : View
override a laugh onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Package?): View? {
// Inflate the format for this fragment
binding= FragmentLoginBinding.inflate(inflater,container,false)
firebaseAuth= FirebaseAuth.getInstance()
globalIterator = binding.buttonSignIn
binding.buttonSignIn.setOnClickListener {
val e mail = binding.lEmail.textual content.toString()
val password = binding.lPassword.textual content.toString()
if (e mail.isNotEmpty() && password.isNotEmpty()){
firebaseAuth.signInWithEmailAndPassword(e mail,password).addOnCompleteListener {
if(it.isSuccessful){
val loginIntent = Intent(requireContext(),HomeFragment::magnificence.java)
startActivity(loginIntent)
}else{
Toast.makeText(requireContext(),it.exception.toString(), Toast.LENGTH_SHORT).display()
}
}
}else{
Toast.makeText(requireContext(),"Fields can't be empty ",Toast.LENGTH_SHORT).display()
}
}
binding.textSignUp.setOnClickListener {
val signUpIntent = Intent(requireContext(),SignUpFragment::magnificence.java)
startActivity(signUpIntent)
}
binding.textForgot.setOnClickListener {
val forgotIntent = Intent(requireContext(),ForgotPasswordFragment::magnificence.java)
startActivity(forgotIntent)
}
go back binding.root
}
}
This situation makes use of Firebase Authentication’s createUserWithEmailAndPassword
for registration and signInWithEmailAndPassword
for login. You should definitely safe your Firebase configuration and arrange right kind safety laws for your Firebase undertaking. Moreover, imagine error dealing with and person comments for a production-ready implementation.
We discovered use fairbase with a easy registration and login procedure. This easy login license plate is open to growth and you’ll be able to combine it into your code.