feat(auth): make reauthentication a navigation destination - #2471
Open
demolaf wants to merge 1 commit into
Open
Conversation
Contributor
There was a problem hiding this comment.
Code Review
This pull request refactors the reauthentication flow in FirebaseUI Auth by integrating it directly into the host's back stack as a wrapped destination (AuthRoute.Reauth) and managing its presentation via a custom ReauthSceneStrategy. This replaces the previous separate modal sheet and custom content implementations, which have been removed along with their state savers. Additionally, parallel sync is enabled in gradle.properties. Feedback on these changes suggests using rememberUpdatedState for more idiomatic state tracking in FirebaseAuthScreen and adding a safety check in reauthDestinations to ensure the active reauthentication request ID matches the back stack key before rendering.
demolaf
force-pushed
the
feat/reauth-as-navigation-destination
branch
2 times, most recently
from
September 2, 2026 10:52
4da9222 to
9d4ce9c
Compare
demolaf
force-pushed
the
feat/reauth-as-navigation-destination
branch
from
September 2, 2026 13:17
9d4ce9c to
b21a1d6
Compare
demolaf
force-pushed
the
feat/reauth-as-navigation-destination
branch
from
September 2, 2026 13:30
b21a1d6 to
7118ce9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reauthentication was a host-owned
ModalBottomSheetcontaining its ownNavDisplayand back stack. It is now a single destination on the main back stack —AuthRoute.Reauth(requestId, userUid, step)— rendered as a sheet by anOverlayScenescene strategy. One stack means oneonBack, one place that can pop, and no way for two stacks to disagree about a back press.ReauthPresentationStateand its saver are gone: the marker rides on the key, sorememberNavBackStackpersists it.ReauthSheetContentandCustomReauthContentare gone too — all three were internal.ReauthContentStateis unchanged.ReauthDestinations.kt/ReauthSceneStrategy.kt: the reauth entry and the sheet/bare presentations, honouringconfiguration.transitionsbetween steps and hiding the sheet viaOverlayScene.onRemove.EmailAuthDestinations.kt: the email step body is now a sharedEmailAuthStep, so the reachability guard applies to reauth too — a restored stack holding an unoffered step no longer renders a sign-up form mid-reauthentication.RequiresMfa.The reauth surface now stays mounted through
RetryingOperationand reports it as loading, rather than disappearing and uncovering the flow behind it.Added tests for the shared reachability guard, the transition between reauth steps, the MFA challenge pop, and the retry behaviour.
Maintainer note: Fixes internal CPRN-403