From 5063af5b668cc0c15574f9ea3d08a4af2b163377 Mon Sep 17 00:00:00 2001 From: Andrei Lesnitsky Date: Thu, 13 Jul 2023 13:07:15 +0200 Subject: [PATCH] fix(ui_auth): fix linking OAuthProvider from ProfileScreen (#11168) --- .../lib/src/platform_oauth_sign_in_web.dart | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/firebase_ui_oauth/lib/src/platform_oauth_sign_in_web.dart b/packages/firebase_ui_oauth/lib/src/platform_oauth_sign_in_web.dart index 13169e8dd69c..2c5448c3d71f 100644 --- a/packages/firebase_ui_oauth/lib/src/platform_oauth_sign_in_web.dart +++ b/packages/firebase_ui_oauth/lib/src/platform_oauth_sign_in_web.dart @@ -14,18 +14,22 @@ mixin PlatformSignInMixin { OAuthListener get authListener; dynamic get firebaseAuthProvider; + void _webOnLinked(UserCredential userCredential) { + return authListener.onCredentialLinked(userCredential.credential!); + } + /// {@macro ui.oauth.platform_sign_in_mixin.platform_sign_in} void platformSignIn(TargetPlatform platform, AuthAction action) { - Future credentialFuture; - if (action == AuthAction.link) { - credentialFuture = auth.currentUser!.linkWithPopup(firebaseAuthProvider); + auth.currentUser! + .linkWithPopup(firebaseAuthProvider) + .then(_webOnLinked) + .catchError(authListener.onError); } else { - credentialFuture = auth.signInWithPopup(firebaseAuthProvider); + auth + .signInWithPopup(firebaseAuthProvider) + .then(authListener.onSignedIn) + .catchError(authListener.onError); } - - credentialFuture - .then(authListener.onSignedIn) - .catchError(authListener.onError); } }