Skip to content

Commit bd9071a

Browse files
committed
Add EmailAuthProvider.getCredentialWithLink()
1 parent 3600a58 commit bd9071a

File tree

6 files changed

+25
-2
lines changed

6 files changed

+25
-2
lines changed

firebase-auth/src/androidMain/kotlin/dev/gitlive/firebase/auth/credentials.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ actual object EmailAuthProvider {
2828
email: String,
2929
password: String
3030
): AuthCredential = AuthCredential(com.google.firebase.auth.EmailAuthProvider.getCredential(email, password))
31+
32+
actual fun getCredentialWithLink(
33+
email: String,
34+
emailLink: String
35+
): AuthCredential = AuthCredential(com.google.firebase.auth.EmailAuthProvider.getCredentialWithLink(email, emailLink))
3136
}
3237

3338
actual object FacebookAuthProvider {

firebase-auth/src/commonMain/kotlin/dev/gitlive/firebase/auth/credentials.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ expect class OAuthCredential : AuthCredential
1515

1616
expect object EmailAuthProvider {
1717
fun credential(email: String, password: String): AuthCredential
18+
fun getCredentialWithLink(email: String, emailLink: String): AuthCredential
1819
}
1920

2021
expect object FacebookAuthProvider {

firebase-auth/src/commonTest/kotlin/dev/gitlive/firebase/auth/auth.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,14 @@ class FirebaseAuthTest {
105105
assertFalse(Firebase.auth.isSignInWithEmailLink(invalidLink))
106106
}
107107

108+
@Test
109+
fun testGetCredentialWithLink() {
110+
val link = "http://localhost:9099/emulator/action?mode=signIn&lang=en&oobCode=_vr0QcFcxcVeLZbrcU-GpTaZiuxlHquqdC8MSy0YM_vzWCTAQgV9Jq&apiKey=fake-api-key&continueUrl=https%3A%2F%2Fexample.com%2Fsignin"
111+
val email = "[email protected]"
112+
val credential = EmailAuthProvider.getCredentialWithLink(email, link)
113+
assertEquals("password", credential.providerId)
114+
}
115+
108116
private suspend fun getTestUid(email: String, password: String): String {
109117
val uid = Firebase.auth.let {
110118
val user = try {

firebase-auth/src/iosMain/kotlin/dev/gitlive/firebase/auth/credentials.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,11 @@ actual object EmailAuthProvider {
1818
actual fun credential(
1919
email: String,
2020
password: String
21-
): AuthCredential =
22-
AuthCredential(FIREmailAuthProvider.credentialWithEmail(email = email, password = password))
21+
): AuthCredential = AuthCredential(FIREmailAuthProvider.credentialWithEmail(email = email, password = password))
22+
23+
actual fun getCredentialWithLink(email: String, emailLink: String): AuthCredential {
24+
return AuthCredential(FIREmailAuthProvider.credentialWithEmail(email = email, link = emailLink))
25+
}
2326
}
2427

2528
actual object FacebookAuthProvider {

firebase-auth/src/jsMain/kotlin/dev/gitlive/firebase/auth/credentials.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ actual class OAuthCredential(js: firebase.auth.AuthCredential) : AuthCredential(
1616
actual object EmailAuthProvider {
1717
actual fun credential(email: String, password: String): AuthCredential =
1818
AuthCredential(firebase.auth.EmailAuthProvider.credential(email, password))
19+
20+
actual fun getCredentialWithLink(
21+
email: String,
22+
emailLink: String
23+
): AuthCredential = AuthCredential(firebase.auth.EmailAuthProvider.credentialWithLink(email, emailLink))
1924
}
2025

2126
actual object FacebookAuthProvider {

firebase-common/src/jsMain/kotlin/dev/gitlive/firebase/externals.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ external object firebase {
128128
class EmailAuthProvider : AuthProvider {
129129
companion object {
130130
fun credential(email : String, password : String): AuthCredential
131+
fun credentialWithLink(email: String, emailLink: String): AuthCredential
131132
}
132133
}
133134

0 commit comments

Comments
 (0)