Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/firebase_ui_auth/example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ environment:

dependencies:
cupertino_icons: ^1.0.6
firebase_auth: ^5.7.0
firebase_core: ^3.15.2
firebase_auth: ^6.0.0
firebase_core: ^4.0.0
flutter:
sdk: flutter
flutter_localizations:
Expand Down
10 changes: 0 additions & 10 deletions packages/firebase_ui_auth/lib/firebase_ui_auth.dart
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ export 'src/auth_flow.dart';
export 'src/auth_state.dart'
show
Uninitialized,
FetchingProvidersForEmail,
AuthStateListenerCallback,
AuthState,
AuthStateListener,
Expand All @@ -29,16 +28,12 @@ export 'src/auth_state.dart'
SigningIn,
UserCreated,
AuthFailed,
// ignore: deprecated_member_use_from_same_package
DifferentSignInMethodsFound,
MFARequired;
export 'src/email_verification.dart';
export 'src/flows/email_flow.dart';
export 'src/flows/email_link_flow.dart';
export 'src/flows/oauth_flow.dart' show OAuthController, OAuthFlow;
export 'src/flows/phone_auth_flow.dart';
export 'src/flows/universal_email_sign_in_flow.dart';
// ignore_for_file: use_build_context_synchronously

export 'src/mfa.dart' show startMFAVerification;
export 'src/navigation/authentication.dart';
Expand All @@ -51,7 +46,6 @@ export 'src/providers/auth_provider.dart';
export 'src/providers/email_auth_provider.dart';
export 'src/providers/email_link_auth_provider.dart';
export 'src/providers/phone_auth_provider.dart';
export 'src/providers/universal_email_sign_in_provider.dart';
export 'src/screens/email_link_sign_in_screen.dart';
export 'src/screens/email_verification_screen.dart';
export 'src/screens/forgot_password_screen.dart';
Expand All @@ -62,20 +56,16 @@ export 'src/screens/profile_screen.dart' show ProfileScreen;
export 'src/screens/register_screen.dart';
export 'src/screens/sign_in_screen.dart';
export 'src/screens/sms_code_input_screen.dart';
export 'src/screens/universal_email_sign_in_screen.dart';
export 'src/styling/style.dart' show FirebaseUIStyle;
export 'src/styling/theme.dart' show FirebaseUITheme;
export 'src/views/different_method_sign_in_view.dart';
export 'src/views/email_link_sign_in_view.dart';
export 'src/views/find_providers_for_email_view.dart';
export 'src/views/forgot_password_view.dart';
export 'src/views/login_view.dart';
export 'src/views/phone_input_view.dart';
export 'src/views/reauthenticate_view.dart';
export 'src/views/sms_code_input_view.dart';
export 'src/widgets/auth_flow_builder.dart';
export 'src/widgets/delete_account_button.dart';
export 'src/widgets/different_method_sign_in_dialog.dart';
export 'src/widgets/editable_user_display_name.dart';
export 'src/widgets/email_form.dart'
show EmailForm, ForgotPasswordAction, EmailFormStyle;
Expand Down
23 changes: 0 additions & 23 deletions packages/firebase_ui_auth/lib/src/auth_flow.dart
Original file line number Diff line number Diff line change
Expand Up @@ -113,11 +113,6 @@ class AuthFlow<T extends AuthProvider> extends ValueNotifier<AuthState>
value = CredentialReceived(credential);
}

@override
void onBeforeProvidersForEmailFetch() {
value = const FetchingProvidersForEmail();
}

@override
void onBeforeSignIn() {
value = const SigningIn();
Expand All @@ -128,24 +123,6 @@ class AuthFlow<T extends AuthProvider> extends ValueNotifier<AuthState>
value = CredentialLinked(credential, auth.currentUser!);
}

@override
@Deprecated(
'Email enumeration protection is on by default.'
'Read more here https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection',
)
@override
void onDifferentProvidersFound(
String email,
List<String> providers,
fba.AuthCredential? credential,
) {
value = DifferentSignInMethodsFound(
email,
providers,
credential,
);
}

@override
void onSignedIn(fba.UserCredential credential) {
if (credential.additionalUserInfo?.isNewUser ?? false) {
Expand Down
37 changes: 0 additions & 37 deletions packages/firebase_ui_auth/lib/src/auth_state.dart
Original file line number Diff line number Diff line change
Expand Up @@ -154,43 +154,6 @@ class UserCreated extends AuthState {
UserCreated(this.credential);
}

/// {@template ui.auth.auth_state.different_sign_in_methods_found}
/// An [AuthState] that indicates that there are different auth providers
/// associated with an email that was used to authenticate.
///
/// See [AuthState] docs for usage examples.
/// {@endtemplate}
@Deprecated(
'Email enumeration protection is on by default.'
'Read more here https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection',
)
class DifferentSignInMethodsFound extends AuthState {
/// An email that has different auth providers associated with.
final String email;

/// An instance of the auth credential that was obtained during sign in flow.
/// Could be used to link with the user account after a sign in using on of
/// the available [methods].
final AuthCredential? credential;

/// A list of provider ids that were found for the [email].
final List<String> methods;

/// {@macro ui.auth.auth_state.different_sign_in_methods_found}
DifferentSignInMethodsFound(this.email, this.methods, this.credential);
}

/// {@template ui.auth.auth_state.fetching_providers_for_email}
/// An [AuthState] that indicates that there is a lookup of available providers
/// for an email in progress.
///
/// See [AuthState] docs for usage examples.
/// {@endtemplate}
class FetchingProvidersForEmail extends AuthState {
/// {@macro ui.auth.auth_state.fetching_providers_for_email}
const FetchingProvidersForEmail();
}

/// {@template ui.auth.auth_state.mfa_required}
/// An [AuthState] that indicates that multi-factor authentication is required.
/// {@endtemplate}
Expand Down

This file was deleted.

37 changes: 0 additions & 37 deletions packages/firebase_ui_auth/lib/src/navigation/authentication.dart
Original file line number Diff line number Diff line change
Expand Up @@ -47,40 +47,3 @@ Future<bool> showReauthenticateDialog({
if (reauthenticated == null) return false;
return reauthenticated;
}

/// Shows [DifferentMethodSignInDialog].
@Deprecated(
'Email enumeration protection is on by default.'
'Read more here https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection',
)
Future<void> showDifferentMethodSignInDialog({
required BuildContext context,

/// A list of providers associated with the user account
required List<String> availableProviders,

/// A list of all supported providers
required List<AuthProvider> providers,

/// {@macro ui.auth.auth_controller.auth}
fba.FirebaseAuth? auth,

/// A callback that is being called after user has successfully signed in.
VoidCallback? onSignedIn,
}) async {
final l = FirebaseUILocalizations.labelsOf(context);

await showGeneralDialog(
context: context,
barrierDismissible: true,
barrierLabel: l.cancelButtonLabel,
pageBuilder: (context, _, __) => DifferentMethodSignInDialog(
availableProviders: availableProviders,
providers: providers,
auth: auth,
onSignedIn: () {
Navigator.of(context).pop();
},
),
);
}
43 changes: 1 addition & 42 deletions packages/firebase_ui_auth/lib/src/providers/auth_provider.dart
Original file line number Diff line number Diff line change
Expand Up @@ -50,25 +50,7 @@ abstract class AuthListener {
/// Called if the credential was successfully linked with the user account.
void onCredentialLinked(fba.AuthCredential credential);

/// Called before an attempt to fetch available providers for the email.
@Deprecated(
'Email enumeration protection is on by default.'
'Read more here https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection',
)
void onBeforeProvidersForEmailFetch();

/// Called when available providers for the email were successfully fetched.
@Deprecated(
'Email enumeration protection is on by default.'
'Read more here https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection',
)
void onDifferentProvidersFound(
String email,
List<String> providers,
fba.AuthCredential? credential,
);

/// Called when the user cancells the sign in process.
/// Called when the user cancels the sign in process.
void onCanceled();

/// Called when the user has to complete MFA.
Expand Down Expand Up @@ -134,29 +116,6 @@ abstract class AuthProvider<T extends AuthListener,
}
}

/// Fetches available providers for the given [email].
@Deprecated(
'Email enumeration protection is on by default.'
'Read more here https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection',
)
void findProvidersForEmail(
String email, [
fba.AuthCredential? credential,
]) {
authListener.onBeforeProvidersForEmailFetch();

auth
.fetchSignInMethodsForEmail(email)
.then(
(methods) => authListener.onDifferentProvidersFound(
email,
methods,
credential,
),
)
.catchError(authListener.onError);
}

/// {@template ui.auth.auth_provider.on_credential_received}
/// A method that is called when the user has successfully completed the
/// authentication process and decides what to do with the obtained
Expand Down

This file was deleted.

27 changes: 0 additions & 27 deletions packages/firebase_ui_auth/lib/src/screens/sign_in_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -124,37 +124,10 @@ class SignInScreen extends MultiProviderScreen {
this.maxWidth,
});

Future<void> _signInWithDifferentProvider(
BuildContext context,
// ignore: deprecated_member_use_from_same_package
DifferentSignInMethodsFound state,
) async {
// ignore: deprecated_member_use_from_same_package
await showDifferentMethodSignInDialog(
availableProviders: state.methods,
providers: providers,
context: context,
auth: auth,
onSignedIn: () {
Navigator.of(context).pop();
},
);

await auth.currentUser!.linkWithCredential(state.credential!);
}

@override
Widget build(BuildContext context) {
final handlesDifferentSignInMethod = this
.actions
// ignore: deprecated_member_use_from_same_package
.whereType<AuthStateChangeAction<DifferentSignInMethodsFound>>()
.isNotEmpty;

final actions = [
...this.actions,
if (!handlesDifferentSignInMethod)
AuthStateChangeAction(_signInWithDifferentProvider)
];

return FirebaseUIActions(
Expand Down
Loading
Loading