diff --git a/packages/firebase_auth/firebase_auth_web/CHANGELOG.md b/packages/firebase_auth/firebase_auth_web/CHANGELOG.md index c4141b22cbdd..a6e700a626e7 100644 --- a/packages/firebase_auth/firebase_auth_web/CHANGELOG.md +++ b/packages/firebase_auth/firebase_auth_web/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.2 + +* Implement `fetchSignInMethodsForEmail`, `isSignInWithEmailLink`, `signInWithEmailAndLink`, and `sendLinkToEmail`. + ## 0.1.1+4 * Prevent `null` users (unauthenticated) from breaking the `onAuthStateChanged` Stream. diff --git a/packages/firebase_auth/firebase_auth_web/lib/firebase_auth_web.dart b/packages/firebase_auth/firebase_auth_web/lib/firebase_auth_web.dart index 79ad71ec8b20..3ceaa2ef5cb8 100644 --- a/packages/firebase_auth/firebase_auth_web/lib/firebase_auth_web.dart +++ b/packages/firebase_auth/firebase_auth_web/lib/firebase_auth_web.dart @@ -147,10 +147,8 @@ class FirebaseAuthWeb extends FirebaseAuthPlatform { @override Future> fetchSignInMethodsForEmail(String app, String email) { - // TODO(hterkelsen): Use `fetchSignInMethodsForEmail` once - // https://github.com/FirebaseExtended/firebase-dart/issues/272 - // is resolved. - throw UnimplementedError('fetchSignInMethodsForEmail'); + final firebase.Auth auth = _getAuth(app); + return auth.fetchSignInMethodsForEmail(email); } @override @@ -162,8 +160,6 @@ class FirebaseAuthWeb extends FirebaseAuthPlatform { @override Future getIdToken(String app, bool refresh) async { - // TODO(hterkelsen): `package:firebase` added `getIdTokenResult` in - // version 7.0.0. Use it here once that is published. final firebase.Auth auth = _getAuth(app); final firebase.User currentUser = auth.currentUser; final firebase.IdTokenResult idTokenResult = @@ -173,10 +169,8 @@ class FirebaseAuthWeb extends FirebaseAuthPlatform { @override Future isSignInWithEmailLink(String app, String link) { - // TODO(hterkelsen): Implement this once - // https://github.com/FirebaseExtended/firebase-dart/issues/273 - // is resolved. - throw UnimplementedError('isSignInWithEmailLink'); + final firebase.Auth auth = _getAuth(app); + return Future.value(auth.isSignInWithEmailLink(link)); } @override @@ -232,9 +226,20 @@ class FirebaseAuthWeb extends FirebaseAuthPlatform { String androidPackageName, bool androidInstallIfNotAvailable, String androidMinimumVersion}) { - // TODO(hterkelsen): File issue with `package:firebase` to show - // `sendSignInLinkToEmail`. - throw UnimplementedError('sendLinkToEmail'); + final firebase.Auth auth = _getAuth(app); + final actionCodeSettings = firebase.ActionCodeSettings( + url: url, + handleCodeInApp: handleCodeInApp, + iOS: firebase.IosSettings( + bundleId: iOSBundleID, + ), + android: firebase.AndroidSettings( + packageName: androidPackageName, + installApp: androidInstallIfNotAvailable, + minimumVersion: androidMinimumVersion, + ), + ); + return auth.sendSignInLinkToEmail(email, actionCodeSettings); } @override @@ -280,9 +285,10 @@ class FirebaseAuthWeb extends FirebaseAuthPlatform { @override Future signInWithEmailAndLink( String app, String email, String link) async { - // TODO(hterkelsen): Use signInWithEmailLink once 7.0.0 of package:firebase - // is released. - throw UnimplementedError('signInWithEmailAndLink'); + final firebase.Auth auth = _getAuth(app); + final firebase.UserCredential userCredential = + await auth.signInWithEmailLink(email, link); + return _fromJsUserCredential(userCredential); } @override diff --git a/packages/firebase_auth/firebase_auth_web/pubspec.yaml b/packages/firebase_auth/firebase_auth_web/pubspec.yaml index 40ebcd7c30e3..ea236583f5b8 100644 --- a/packages/firebase_auth/firebase_auth_web/pubspec.yaml +++ b/packages/firebase_auth/firebase_auth_web/pubspec.yaml @@ -1,7 +1,7 @@ name: firebase_auth_web description: The web implementation of firebase_auth homepage: https://github.com/FirebaseExtended/flutterfire/tree/master/packages/firebase_auth/firebase_auth_web -version: 0.1.1+4 +version: 0.1.2 flutter: plugin: