@@ -77,6 +77,12 @@ external fun signInWithEmailAndPassword(
77
77
78
78
external fun signInWithEmailLink (auth : Auth , email : String , link : String ): Promise <AuthResult >
79
79
80
+ external fun signInWithPopup (auth : Auth , provider : AuthProvider ): Promise <UserCredential >
81
+
82
+ external fun signInWithRedirect (auth : Auth , provider : AuthProvider ): Promise <Nothing >
83
+
84
+ external fun getRedirectResult (auth : Auth ): Promise <UserCredential ?>
85
+
80
86
external fun signOut (auth : Auth ): Promise <Unit >
81
87
82
88
external fun unlink (user : User , providerId : String ): Promise <User >
@@ -169,6 +175,18 @@ external interface AuthCredential {
169
175
val signInMethod: String
170
176
}
171
177
178
+ external interface OAuthCredential : AuthCredential {
179
+ val accessToken: String?
180
+ val idToken: String?
181
+ val secret: String?
182
+ }
183
+
184
+ external interface UserCredential {
185
+ val operationType: String
186
+ val providerId: String?
187
+ val user: User
188
+ }
189
+
172
190
external interface ProfileUpdateRequest {
173
191
val displayName: String?
174
192
val photoURL: String?
@@ -206,6 +224,8 @@ external interface MultiFactorResolver {
206
224
207
225
external interface AuthProvider
208
226
227
+ external interface AuthError
228
+
209
229
external object EmailAuthProvider : AuthProvider {
210
230
fun credential (email : String , password : String ): AuthCredential
211
231
fun credentialWithLink (email : String , emailLink : String ): AuthCredential
@@ -219,8 +239,13 @@ external object GithubAuthProvider : AuthProvider {
219
239
fun credential (token : String ): AuthCredential
220
240
}
221
241
222
- external object GoogleAuthProvider : AuthProvider {
223
- fun credential (idToken : String? , accessToken : String? ): AuthCredential
242
+ external class GoogleAuthProvider : AuthProvider {
243
+ fun addScope (scope : String )
244
+ companion object {
245
+ fun credential (idToken : String? , accessToken : String? ): AuthCredential
246
+ fun credentialFromResult (userCredential : UserCredential ): OAuthCredential ?
247
+ fun credentialFromError (error : AuthError ): OAuthCredential ?
248
+ }
224
249
}
225
250
226
251
external class OAuthProvider (providerId : String ) : AuthProvider {
0 commit comments