Skip to content

Commit 6a0e1b3

Browse files
committed
updates
1 parent f95112c commit 6a0e1b3

3 files changed

Lines changed: 19 additions & 11 deletions

File tree

app/src/main/java/com/firebaseui/android/demo/HighLevelApiDemoActivity.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import com.firebase.ui.auth.ui.screens.AuthSuccessUiContext
4343
import com.firebase.ui.auth.ui.screens.FirebaseAuthScreen
4444
import com.firebase.ui.auth.util.EmailLinkConstants
4545
import com.firebase.ui.auth.util.displayIdentifier
46+
import com.firebase.ui.auth.util.getDisplayEmail
4647
import com.google.firebase.auth.actionCodeSettings
4748

4849
class HighLevelApiDemoActivity : ComponentActivity() {
@@ -212,7 +213,7 @@ private fun AppAuthenticatedContent(
212213
when (state) {
213214
is AuthState.Success -> {
214215
val user = uiContext.authUI.getCurrentUser()
215-
val identifier = user?.displayIdentifier().orEmpty()
216+
val identifier = user.displayIdentifier()
216217
Column(
217218
modifier = Modifier.fillMaxSize(),
218219
horizontalAlignment = Alignment.CenterHorizontally,
@@ -264,7 +265,7 @@ private fun AppAuthenticatedContent(
264265
}
265266

266267
is AuthState.RequiresEmailVerification -> {
267-
val email = uiContext.authUI.getCurrentUser()?.email?.takeIf { it.isNotBlank() } ?: stringProvider.emailProvider
268+
val email = uiContext.authUI.getCurrentUser().getDisplayEmail(stringProvider.emailProvider)
268269
Column(
269270
modifier = Modifier.fillMaxSize(),
270271
horizontalAlignment = Alignment.CenterHorizontally,

auth/src/main/java/com/firebase/ui/auth/ui/screens/FirebaseAuthScreen.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ import com.firebase.ui.auth.ui.screens.phone.PhoneAuthScreen
7979
import com.firebase.ui.auth.util.EmailLinkPersistenceManager
8080
import com.firebase.ui.auth.util.SignInPreferenceManager
8181
import com.firebase.ui.auth.util.displayIdentifier
82+
import com.firebase.ui.auth.util.getDisplayEmail
8283
import com.google.firebase.auth.AuthCredential
8384
import com.google.firebase.auth.AuthResult
8485
import com.google.firebase.auth.MultiFactorResolver
@@ -734,7 +735,7 @@ private fun AuthSuccessContent(
734735
onManageMfa: () -> Unit,
735736
) {
736737
val user = authUI.getCurrentUser()
737-
val userIdentifier = user?.displayIdentifier().orEmpty()
738+
val userIdentifier = user.displayIdentifier()
738739
Column(
739740
modifier = Modifier.fillMaxSize(),
740741
verticalArrangement = Arrangement.Center,
@@ -784,7 +785,7 @@ private fun EmailVerificationContent(
784785
onSignOut: () -> Unit,
785786
) {
786787
val user = authUI.getCurrentUser()
787-
val emailLabel = user?.email?.takeIf { it.isNotBlank() } ?: stringProvider.emailProvider
788+
val emailLabel = user.getDisplayEmail(stringProvider.emailProvider)
788789
Column(
789790
modifier = Modifier.fillMaxSize(),
790791
verticalArrangement = Arrangement.Center,

auth/src/main/java/com/firebase/ui/auth/util/UserUtils.kt

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,17 @@ import com.google.firebase.auth.FirebaseUser
2222
*
2323
* Each field is checked for blank (not just null) so that an empty string returned by the
2424
* Firebase SDK falls through to the next candidate rather than being displayed as-is.
25-
* [FirebaseUser.uid] is always non-null and non-blank for a signed-in user, so the result
26-
* is guaranteed to be non-blank.
25+
* Returns an empty string if the user is null.
2726
*/
28-
fun FirebaseUser.displayIdentifier(): String =
29-
email?.takeIf { it.isNotBlank() }
30-
?: phoneNumber?.takeIf { it.isNotBlank() }
31-
?: displayName?.takeIf { it.isNotBlank() }
32-
?: uid
27+
fun FirebaseUser?.displayIdentifier(): String =
28+
this?.email?.takeIf { it.isNotBlank() }
29+
?: this?.phoneNumber?.takeIf { it.isNotBlank() }
30+
?: this?.displayName?.takeIf { it.isNotBlank() }
31+
?: this?.uid
32+
?: ""
33+
34+
/**
35+
* Returns the user's email if it is non-blank, otherwise returns the provided [fallback].
36+
*/
37+
fun FirebaseUser?.getDisplayEmail(fallback: String): String =
38+
this?.email?.takeIf { it.isNotBlank() } ?: fallback

0 commit comments

Comments
 (0)