Set Up Firebase Authentication in Your Project
- Include the Firebase SDK in your `build.gradle` file (app level). Ensure you have the necessary Firebase dependencies:
dependencies {
implementation platform('com.google.firebase:firebase-bom:32.0.0')
implementation 'com.google.firebase:firebase-auth-ktx'
// Add other Firebase products as needed
}
Initialize Firebase Authentication
- Initialize Firebase in your application class or main activity:
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
FirebaseApp.initializeApp(this)
}
}
Create an Instance of FirebaseAuth
- In your activity or fragment, create an instance of `FirebaseAuth` to handle authentication operations:
private lateinit var auth: FirebaseAuth
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
auth = FirebaseAuth.getInstance()
}
Register New Users
- To enable user signup, use `createUserWithEmailAndPassword`. This function requires an email and a password:
fun registerUser(email: String, password: String) {
auth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
val user = auth.currentUser
// Handle registered user
} else {
// Handle error
}
}
}
Sign In Users
- To sign in users, use `signInWithEmailAndPassword`. This will authenticate existing users with their credentials:
fun loginUser(email: String, password: String) {
auth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
val user = auth.currentUser
// Handle signed in user
} else {
// Handle error
}
}
}
Verify Email
- To verify email addresses, send a verification email after registration:
fun sendEmailVerification() {
val user = auth.currentUser
user?.sendEmailVerification()
?.addOnCompleteListener { task ->
if (task.isSuccessful) {
// Email sent
} else {
// Error occurred
}
}
}
Reset Password
- Allow users to reset their passwords by sending a password reset email:
fun sendPasswordReset(email: String) {
auth.sendPasswordResetEmail(email)
.addOnCompleteListener { task ->
if (task.isSuccessful) {
// Email sent
} else {
// Error occurred
}
}
}
Sign Out Users
- To sign a user out, call `signOut()` from your `FirebaseAuth` instance:
fun signOutUser() {
auth.signOut()
// User is signed out
}
Handle User State Changes
- Monitor user's authentication state across the app:
override fun onStart() {
super.onStart()
val currentUser = auth.currentUser
updateUI(currentUser)
}
private fun updateUI(user: FirebaseUser?) {
// Update UI based on user's authentication state
}
Manage Anonymous Authentication
- Enable anonymous authentication by signing in users anonymously:
fun signInAnonymously() {
auth.signInAnonymously()
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
val user = auth.currentUser
// Handle signed-in anonymously user
} else {
// Handle error
}
}
}