
Unified API enables Firebase Authentication integration, handling sign-in, sign-out, session management, and email verification, centralizing authentication logic to streamline cross-platform development.
| KFirebaseAuth Version | Firebase iOS SDK | Minimum iOS Version |
|---|---|---|
| 1.1.0 | Firebase v11.x | iOS 13+ |
| 2.0.0 | Firebase v12.x | iOS 15+ |
implementation("io.github.the-best-is-best:kfirebase-auth:2.1.0")KAndroidFirebaseCore.initialize(this)
AndroidKFirebaseAuth.init(
this,
"YourClientId"
)Make sure to add Firebase as a dependency using Swift Package Manager (SPM).
https://github.com/the-best-is-best/KFirebaseAuthInterop
val auth = KFirebaseAuth()
val result = auth.signInWithEmailAndPassword("test@example.com", "securePassword")
result.onSuccess { user ->
println("Signed in as: ${user?.email}")
}.onFailure { error ->
println("Sign-in failed: ${error.message}")
}
// Send email verification
auth.kSendEmailVerification()
// Update profile
auth.kUpdateProfile(displayName = "Jane Doe", photoUrl = null)
//etc
// More APIs like signInAnonymously, verifyOtp, etc. are also available.
expect class KFirebaseAuth {
suspend fun getClient(): String
suspend fun currentUser(): Result<KFirebaseUser?>
suspend fun signInAnonymously(): Result<KFirebaseUser?>
suspend fun createUserWithEmailAndPassword(
email: String,
password: String
): Result<KFirebaseUser?>
suspend fun signInWithEmailAndPassword(email: String, password: String): Result<KFirebaseUser?>
suspend fun signInWithCredential(credential: KAuthCredentials): Result<KFirebaseUser?>
suspend fun linkProvider(credential: KAuthCredentials): Result<KFirebaseUser?>
suspend fun isLinkEmail(email: String): Boolean
suspend fun confirmPasswordReset(code: String, newPassword: String): Result<Boolean?>
suspend fun applyActionWithCode(code: String): Result<Boolean?>
suspend fun kResetPassword(password: String): Result<Boolean?>
suspend fun kUpdateEmail(newEmail: String): Result<Boolean?>
suspend fun kUpdateProfile(displayName: String?, photoUrl: String?): Result<Boolean?>
suspend fun kSendEmailVerification(): Result<Boolean?>
suspend fun kDelete(): Result<Boolean?>
suspend fun kSignOut(): Result<Boolean?>
suspend fun addListenerAuthStateChange(): Result<KFirebaseUser?>
suspend fun addListenerIdTokenChanged(): Result<KFirebaseUser?>
suspend fun removeListenerAuthStateChange(): Result<Boolean?>
suspend fun removeListenerIdTokenChanged(): Result<Boolean?>
suspend fun sendOtp(
phoneNumber: String,
onCodeSent: (verificationId: String) -> Unit,
onCodeSentFailed: (Throwable) -> Unit
)
suspend fun verifyOtp(
verificationId: String,
otpCode: String,
onVerificationCompleted: (user: KFirebaseUser) -> Unit,
onVerificationFailed: (Throwable) -> Unit
)
fun setLanguageCodeLocale(locale: String)
var languageCode: String?
}This project is licensed under the Apache 2.0 License.
| KFirebaseAuth Version | Firebase iOS SDK | Minimum iOS Version |
|---|---|---|
| 1.1.0 | Firebase v11.x | iOS 13+ |
| 2.0.0 | Firebase v12.x | iOS 15+ |
implementation("io.github.the-best-is-best:kfirebase-auth:2.1.0")KAndroidFirebaseCore.initialize(this)
AndroidKFirebaseAuth.init(
this,
"YourClientId"
)Make sure to add Firebase as a dependency using Swift Package Manager (SPM).
https://github.com/the-best-is-best/KFirebaseAuthInterop
val auth = KFirebaseAuth()
val result = auth.signInWithEmailAndPassword("test@example.com", "securePassword")
result.onSuccess { user ->
println("Signed in as: ${user?.email}")
}.onFailure { error ->
println("Sign-in failed: ${error.message}")
}
// Send email verification
auth.kSendEmailVerification()
// Update profile
auth.kUpdateProfile(displayName = "Jane Doe", photoUrl = null)
//etc
// More APIs like signInAnonymously, verifyOtp, etc. are also available.
expect class KFirebaseAuth {
suspend fun getClient(): String
suspend fun currentUser(): Result<KFirebaseUser?>
suspend fun signInAnonymously(): Result<KFirebaseUser?>
suspend fun createUserWithEmailAndPassword(
email: String,
password: String
): Result<KFirebaseUser?>
suspend fun signInWithEmailAndPassword(email: String, password: String): Result<KFirebaseUser?>
suspend fun signInWithCredential(credential: KAuthCredentials): Result<KFirebaseUser?>
suspend fun linkProvider(credential: KAuthCredentials): Result<KFirebaseUser?>
suspend fun isLinkEmail(email: String): Boolean
suspend fun confirmPasswordReset(code: String, newPassword: String): Result<Boolean?>
suspend fun applyActionWithCode(code: String): Result<Boolean?>
suspend fun kResetPassword(password: String): Result<Boolean?>
suspend fun kUpdateEmail(newEmail: String): Result<Boolean?>
suspend fun kUpdateProfile(displayName: String?, photoUrl: String?): Result<Boolean?>
suspend fun kSendEmailVerification(): Result<Boolean?>
suspend fun kDelete(): Result<Boolean?>
suspend fun kSignOut(): Result<Boolean?>
suspend fun addListenerAuthStateChange(): Result<KFirebaseUser?>
suspend fun addListenerIdTokenChanged(): Result<KFirebaseUser?>
suspend fun removeListenerAuthStateChange(): Result<Boolean?>
suspend fun removeListenerIdTokenChanged(): Result<Boolean?>
suspend fun sendOtp(
phoneNumber: String,
onCodeSent: (verificationId: String) -> Unit,
onCodeSentFailed: (Throwable) -> Unit
)
suspend fun verifyOtp(
verificationId: String,
otpCode: String,
onVerificationCompleted: (user: KFirebaseUser) -> Unit,
onVerificationFailed: (Throwable) -> Unit
)
fun setLanguageCodeLocale(locale: String)
var languageCode: String?
}This project is licensed under the Apache 2.0 License.