@@ -147,10 +147,8 @@ class FirebaseAuthWeb extends FirebaseAuthPlatform {
147147
148148 @override
149149 Future <List <String >> fetchSignInMethodsForEmail (String app, String email) {
150- // TODO(hterkelsen): Use `fetchSignInMethodsForEmail` once
151- // https://github.com/FirebaseExtended/firebase-dart/issues/272
152- // is resolved.
153- throw UnimplementedError ('fetchSignInMethodsForEmail' );
150+ final firebase.Auth auth = _getAuth (app);
151+ return auth.fetchSignInMethodsForEmail (email);
154152 }
155153
156154 @override
@@ -162,8 +160,6 @@ class FirebaseAuthWeb extends FirebaseAuthPlatform {
162160
163161 @override
164162 Future <PlatformIdTokenResult > getIdToken (String app, bool refresh) async {
165- // TODO(hterkelsen): `package:firebase` added `getIdTokenResult` in
166- // version 7.0.0. Use it here once that is published.
167163 final firebase.Auth auth = _getAuth (app);
168164 final firebase.User currentUser = auth.currentUser;
169165 final firebase.IdTokenResult idTokenResult =
@@ -173,10 +169,8 @@ class FirebaseAuthWeb extends FirebaseAuthPlatform {
173169
174170 @override
175171 Future <bool > isSignInWithEmailLink (String app, String link) {
176- // TODO(hterkelsen): Implement this once
177- // https://github.com/FirebaseExtended/firebase-dart/issues/273
178- // is resolved.
179- throw UnimplementedError ('isSignInWithEmailLink' );
172+ final firebase.Auth auth = _getAuth (app);
173+ return Future .value (auth.isSignInWithEmailLink (link));
180174 }
181175
182176 @override
@@ -232,9 +226,20 @@ class FirebaseAuthWeb extends FirebaseAuthPlatform {
232226 String androidPackageName,
233227 bool androidInstallIfNotAvailable,
234228 String androidMinimumVersion}) {
235- // TODO(hterkelsen): File issue with `package:firebase` to show
236- // `sendSignInLinkToEmail`.
237- throw UnimplementedError ('sendLinkToEmail' );
229+ final firebase.Auth auth = _getAuth (app);
230+ final actionCodeSettings = firebase.ActionCodeSettings (
231+ url: url,
232+ handleCodeInApp: handleCodeInApp,
233+ iOS: firebase.IosSettings (
234+ bundleId: iOSBundleID,
235+ ),
236+ android: firebase.AndroidSettings (
237+ packageName: androidPackageName,
238+ installApp: androidInstallIfNotAvailable,
239+ minimumVersion: androidMinimumVersion,
240+ ),
241+ );
242+ return auth.sendSignInLinkToEmail (email, actionCodeSettings);
238243 }
239244
240245 @override
@@ -280,9 +285,10 @@ class FirebaseAuthWeb extends FirebaseAuthPlatform {
280285 @override
281286 Future <PlatformAuthResult > signInWithEmailAndLink (
282287 String app, String email, String link) async {
283- // TODO(hterkelsen): Use signInWithEmailLink once 7.0.0 of package:firebase
284- // is released.
285- throw UnimplementedError ('signInWithEmailAndLink' );
288+ final firebase.Auth auth = _getAuth (app);
289+ final firebase.UserCredential userCredential =
290+ await auth.signInWithEmailLink (email, link);
291+ return _fromJsUserCredential (userCredential);
286292 }
287293
288294 @override
0 commit comments