Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
1ecd498
fix(auth): validate display name only when required in sign-up form (…
demolaf Jul 10, 2026
d7be7ea
fix(internal): append CHAR_LIMIT to translation descriptions in expor…
just1and0 Jul 27, 2026
17b9620
fix(auth): mitigate tapjacking on the auth activity window (#2416)
just1and0 Jul 27, 2026
8b18a4f
sample(app): add Firestore, Database & Storage demos to sample app (#…
demolaf Jul 27, 2026
12762f1
fix(auth): allow customizing top app bar colors via AuthUITheme (#2391)
demolaf Jul 27, 2026
76e5a3f
fix(auth): handle edge-to-edge insets in MFA challenge and auth scree…
demolaf Jul 28, 2026
cbbd262
fix(auth): use fixed padding for method picker provider buttons (#242…
just1and0 Jul 28, 2026
a3a9868
fix(auth): prevent MFA code input from triggering password manager sa…
just1and0 Jul 30, 2026
c167853
fix(auth): stale one-off AuthState no longer leaks across screen inst…
demolaf Aug 5, 2026
34f4c9f
refactor(auth)!: hide sign-up button instead of showing disabled stat…
demolaf Aug 5, 2026
7cb7dcc
fix(auth): only exit auth flow on AuthState.Aborted, not per-provider…
demolaf Aug 7, 2026
6f7294a
fix(auth): stop showing error dialog when Google sign-in is cancelled…
demolaf Aug 10, 2026
e1cee16
fix(auth): pre-fill email when "Continue as" button is tapped (#2423)…
just1and0 Aug 10, 2026
007676d
wip: demo
demolaf Jul 28, 2026
2794133
fix(auth): report Google/Facebook/OAuth/Anonymous sign-in failures vi…
demolaf Jul 30, 2026
da25645
fix(auth): avoid stale onSignInFailure/config closures in Google/Anon…
demolaf Aug 5, 2026
38fe7e9
fix(auth): don't report onSignInFailure for user-cancelled sign-in
demolaf Aug 5, 2026
aca99e7
fix(auth): log diagnostic warning when Google sign-in NoCredentialExc…
demolaf Jul 31, 2026
ac61312
fix(e2e): retry and fail loudly when clearing Firebase Auth emulator …
demolaf Aug 7, 2026
3f4ae70
fix(e2e): don't swallow InterruptedException in emulator clear retry …
demolaf Aug 7, 2026
d552549
sample(auth): add MFA enrollment/challenge, reauth, and authenticated…
demolaf Aug 13, 2026
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
7 changes: 7 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ plugins {
id("org.jetbrains.kotlin.android")
id("org.jetbrains.kotlin.plugin.compose")
id("com.google.gms.google-services")
id("kotlin-kapt")
}

android {
Expand Down Expand Up @@ -53,6 +54,11 @@ kotlin {

dependencies {
implementation(project(":auth"))
implementation(project(":database"))
implementation(project(":firestore"))
implementation(project(":storage"))
implementation(libs.androidx.paging)
kapt(libs.glide.compiler)

implementation(libs.kotlin.stdlib)
implementation(libs.androidx.lifecycle.runtime)
Expand All @@ -62,6 +68,7 @@ dependencies {
implementation(libs.compose.ui.graphics)
implementation(libs.compose.ui.tooling.preview)
implementation(libs.compose.material3)
implementation(libs.compose.material.icons.extended)

// Facebook
implementation(libs.facebook.login)
Expand Down
54 changes: 41 additions & 13 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,9 @@
android:theme="@style/Theme.FirebaseUIAndroid">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

<!-- Email Link Sign-In Handler Activity for Compose -->
<!-- This activity handles deep links for passwordless email authentication -->
<!-- The host is automatically read from firebase_web_host in config.xml -->
<!-- NOTE: firebase_web_host must be lowercase (e.g., project-id.firebaseapp.com) -->
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
Expand All @@ -38,54 +33,87 @@
</intent-filter>
</activity>

<!-- Auth -->
<activity
android:name="com.firebaseui.android.demo.auth.AuthChooserActivity"
android:label="Auth Demos"
android:exported="false"
android:theme="@style/Theme.FirebaseUIAndroid" />

<activity
android:name=".HighLevelApiDemoActivity"
android:name="com.firebaseui.android.demo.auth.HighLevelApiDemoActivity"
android:label="High-Level API Demo"
android:exported="false"
android:theme="@style/Theme.FirebaseUIAndroid" />

<activity
android:name=".AuthFlowControllerDemoActivity"
android:name="com.firebaseui.android.demo.auth.AuthFlowControllerDemoActivity"
android:label="Low-Level API Demo"
android:exported="false"
android:theme="@style/Theme.FirebaseUIAndroid" />

<activity
android:name=".CustomSlotsThemingDemoActivity"
android:name="com.firebaseui.android.demo.auth.CustomSlotsThemingDemoActivity"
android:label="Custom Slots &amp; Theming Demo"
android:exported="false"
android:theme="@style/Theme.FirebaseUIAndroid" />

<activity
android:name=".CredentialLinkingDemoActivity"
android:name="com.firebaseui.android.demo.auth.CredentialLinkingDemoActivity"
android:label="Credential Linking Demo"
android:exported="false"
android:theme="@style/Theme.FirebaseUIAndroid" />

<activity
android:name=".EmailAuthSlotDemoActivity"
android:name="com.firebaseui.android.demo.auth.EmailAuthSlotDemoActivity"
android:label="Email Auth — Custom Slot"
android:exported="false"
android:theme="@style/Theme.FirebaseUIAndroid" />

<activity
android:name=".PhoneAuthSlotDemoActivity"
android:name="com.firebaseui.android.demo.auth.PhoneAuthSlotDemoActivity"
android:label="Phone Auth — Custom Slot"
android:exported="false"
android:theme="@style/Theme.FirebaseUIAndroid" />

<activity
android:name=".ShapeCustomizationDemoActivity"
android:name="com.firebaseui.android.demo.auth.ShapeCustomizationDemoActivity"
android:label="Shape Customization"
android:exported="false"
android:theme="@style/Theme.FirebaseUIAndroid" />

<activity
android:name=".CustomMethodPickerDemoActivity"
android:name="com.firebaseui.android.demo.auth.CustomMethodPickerDemoActivity"
android:label="Custom Method Picker Layout"
android:exported="false"
android:theme="@style/Theme.FirebaseUIAndroid" />

<activity
android:name="com.firebaseui.android.demo.auth.fullcustomization.FullCustomizationDemoActivity"
android:label="Full Customization"
android:exported="false"
android:theme="@style/Theme.FirebaseUIAndroid" />

<!-- Database -->
<activity
android:name="com.firebaseui.android.demo.database.DatabaseDemoActivity"
android:label="Database Demo"
android:exported="false"
android:theme="@style/Theme.FirebaseUIAndroid" />

<!-- Firestore -->
<activity
android:name="com.firebaseui.android.demo.firestore.FirestoreDemoActivity"
android:label="Firestore Demo"
android:exported="false"
android:theme="@style/Theme.FirebaseUIAndroid" />

<!-- Storage -->
<activity
android:name="com.firebaseui.android.demo.storage.StorageDemoActivity"
android:label="Storage Demo"
android:exported="false"
android:theme="@style/Theme.FirebaseUIAndroid" />
</application>

</manifest>
Loading