Skip to content
CAI
Software that uses CAICheck a score

firebase/FirebaseUI-iOS

56.7

Adequate · 1 October 2026

10.1k

lines of production code

Swift

with Objective-C, C

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a comprehensive UI component library for Firebase on iOS, providing pre-built interfaces for authentication, real-time database queries, and cloud storage. It enables developers to integrate sign-in flows for providers like Google, Apple, and OAuth, bind UI tables and collections to Firebase data sources, and load images from storage with minimal code. The library supports both UIKit and SwiftUI, offering configurable components, localization, and multi-factor authentication handling across multiple Firebase SDK versions.

How it got here

2015–2017 — Swift migration and demo expansion

13 changes.

This period focused on establishing robust development workflows and tooling while migrating the project's sample applications to modern Swift. It introduced a new Swift-based demo app alongside an updated Objective-C version, both featuring comprehensive localization and support for FirebaseUI components like Storage and Chat.

2021–2025 — SwiftUI Auth and UI Data Source expansion

36 changes.

This period focused on building comprehensive SwiftUI authentication components, including support for multiple identity providers and multi-factor authentication, while introducing new data source classes for Firebase Database and Firestore to simplify UI synchronization. The work also involved updating existing Firebase UI frameworks for Swift Package Manager compatibility and expanding test coverage across the new and legacy modules.

Features

Add Apple Sign-In authentication support

Users can now sign in to their accounts using their Apple ID. This change introduces the necessary UI components (a dedicated 'Sign in with Apple' button) and backend service logic to handle the Apple authentication flow, including secure nonce generation and credential creation via the Firebase Authentication SDK.

FirebaseSwiftUI/FirebaseAppleSwiftUI/Sources/Services · high confidence

Add Facebook sign-in support for SwiftUI apps

This change introduces a new FirebaseFacebookSwiftUI package that enables Facebook authentication in SwiftUI applications. It provides a \SignInWithFacebookButton\ view component and a \FacebookProviderSwift\ implementation that integrates with the Facebook SDK. The implementation automatically handles App Tracking Transparency (ATT) by switching between limited and classic login flows based on user authorization status, and it supports both standard sign-in and reauthentication scenarios.

FirebaseSwiftUI/FirebaseFacebookSwiftUI · high confidence

Add Firebase Swift UI sample app configuration and localization

The Firebase Swift UI sample application now includes its core configuration files, enabling local development and testing. The app bundle is configured with entitlements for Apple Sign-In and associated domains (flutterfire-e2e-tests.firebaseapp.com, flutterfiretests.page.link), and the Info.plist defines URL schemes for Google and Facebook authentication, along with Facebook app credentials and background modes for notifications. Additionally, a localization file is provided that demonstrates how to override the default 'Sign in with Firebase' string to 'Firebase Sign up'.

samples/swiftui/FirebaseSwiftUISample/FirebaseSwiftUISample · high confidence

Add FirebaseUI SwiftUI sample app project

A new Xcode project for the FirebaseSwiftUISample has been added, providing a demo application that integrates FirebaseUI for SwiftUI. The project is configured to link against several FirebaseUI components, including FirebaseAuthSwiftUI, FirebaseGoogleSwiftUI, FirebaseFacebookSwiftUI, FirebaseTwitterSwiftUI, FirebasePhoneAuthSwiftUI, and FirebaseOAuthSwiftUI, along with the core FirebaseAppleSwiftUI framework.

samples/swiftui/FirebaseSwiftUISample/FirebaseSwiftUISample.xcodeproj · high confidence

Add Google Sign-In support to FirebaseUI SwiftUI

This change introduces a new FirebaseGoogleSwiftUI module that enables Google authentication within FirebaseUI for SwiftUI applications. It provides a \SignInWithGoogleButton\ view component that integrates with the existing \AuthService\ and handles sign-in flows, including MFA requirements and account conflict resolution, while leveraging the Google Sign-In SDK for credential creation.

FirebaseSwiftUI/FirebaseGoogleSwiftUI · high confidence

Add Swift chat sample using FirebaseUI data sources

The Chat sample directory now includes Swift implementations of the chat view controller and collection view cell. This sample demonstrates how to use FirebaseUI's FUICollectionViewDataSource to bind a collection view to a Firebase Database query, automatically handling cell population and layout for chat messages, including styling for sent versus received messages and handling keyboard appearance.

samples/swift/FirebaseUI-demo-swift/Samples/Chat · high confidence

Add Swift sample app for FirebaseUI

A new Swift-based demo application has been added to the samples directory, providing a concrete example of how to integrate FirebaseUI authentication in a modern Swift project. The sample includes the necessary configuration files, such as an entitlements file enabling Sign in with Apple, an Info.plist with placeholders for Facebook and Google OAuth reverse client IDs, and a basic AppDelegate that initializes Firebase. This gives Swift developers a starting point for testing and implementing Firebase authentication flows.

samples/swift/FirebaseUI-demo-swift · high confidence

Add SwiftUI view for Apple Sign-In

A new \SignInWithAppleButton\ view has been added to the Views layer, enabling users to sign in using their Apple ID. This component integrates with the existing \AuthService\ and handles Apple-specific authentication flows, including MFA challenges and account conflict resolution, directly within the view layer.

FirebaseSwiftUI/FirebaseAppleSwiftUI/Sources/Views · high confidence

Add Twitter sign-in support

Users can now sign in to their accounts using Twitter. This change introduces the Twitter authentication provider, including the necessary service classes to handle OAuth credentials and a SwiftUI button for initiating the sign-in flow, along with basic test coverage for the new module.

FirebaseSwiftUI/FirebaseTwitterSwiftUI · high confidence

Add generic OAuth sign-in support for GitHub, Microsoft, and Yahoo

This change introduces a new OAuth provider system within FirebaseOAuthSwiftUI, allowing users to sign in using third-party identity providers. The diff adds the core \OAuthProviderSwift\ class and a \GenericOAuthButton\ SwiftUI view that handles the sign-in flow, including MFA and account conflict handling at the view layer. Preset configurations are provided for GitHub, Microsoft, and Yahoo, each with specific scopes and custom parameters (e.g., 'prompt': 'consent' for Microsoft and Yahoo). An extension on \AuthService\ (\withOAuthSignIn\) allows registering these providers. This is a new capability for integrating OAuth providers into the FirebaseUI login flow.

FirebaseSwiftUI/FirebaseOAuthSwiftUI · high confidence

Add localizations and storyboard resources to Swift demo app

The Swift demo app now includes a LaunchScreen and Main storyboard, providing the visual structure for the samples list and chat views. Additionally, localization files (Localizable.strings) have been added for over 40 languages and regions, enabling the demo interface to display text in the user's preferred language.

samples/swift/FirebaseUI-demo-swift/Resources · high confidence

Add storyboard and localization resources to the Objective-C demo app

The FirebaseUI Objective-C demo app now includes its primary user interface layout in Main.storyboard, featuring a navigation controller, a sample list view, and a chat interface. Additionally, localization support has been added by introducing Localizable.strings files for over 40 language and region variants (such as en, es, fr, de, ja, zh, ar, and others), enabling the demo app to display text in the user's preferred language.

samples/objc/FirebaseUI-demo-objc/Resources · high confidence

Added Xcode project scheme for FirebaseStorageUI

The FirebaseStorageUI Xcode project now includes a shared scheme that configures the build, test, and archive actions for the FirebaseStorageUI framework and its associated unit tests. This allows developers to directly build, run, and test the library within Xcode without relying on external build systems or manual configuration.

FirebaseStorageUI/FirebaseStorageUI.xcodeproj · high confidence

Added Xcode scheme for FirebaseUI demo app

The FirebaseUI-demo-objc project now includes a defined Xcode scheme (FirebaseUI-demo-objc.xcscheme) that configures the build, test, launch, profile, analyze, and archive actions for the demo application. This allows developers to easily run, test, and debug the Objective-C FirebaseUI sample app directly from Xcode.

samples/objc/FirebaseUI-demo-objc.xcodeproj/xcshareddata · high confidence

Introduce FirebaseUI data source classes for iOS tables and collection views

FirebaseDatabaseUI now provides \FUITableViewDataSource\ and \FUICollectionViewDataSource\ (along with indexed variants) that automatically synchronize \UITableView\ and \UICollectionView\ contents with a Firebase Database query. These data sources handle insert, update, delete, and move operations to keep the UI in lockstep with the database, and include serialization logic to prevent crashes when batch updates are desynchronized from child events.

FirebaseDatabaseUI/Sources · high confidence

Introduce Firestore UI data sources for UITableView and UICollectionView

This change adds the initial implementation of \FUIFirestoreTableViewDataSource\ and \FUIFirestoreCollectionViewDataSource\ within the FirebaseFirestoreUI module. These data sources automatically bind a \UITableView\ or \UICollectionView\ to a Firestore query, handling real-time synchronization by diffing document snapshots and applying batched insert, delete, move, and reload animations to the UI. The implementation relies on new internal components, including \FUIBatchedArray\ for managing the query state and \FUISnapshotArrayDiff\ for computing the differences between query results, along with corresponding unit tests to verify the diffing logic.

FirebaseFirestoreUI/Sources · high confidence

Introduces configurable AuthService and AuthConfiguration for Firebase Auth UI

This change introduces a new \AuthService\ class and an \AuthConfiguration\ struct within the FirebaseAuthSwiftUI package, providing a centralized, configurable entry point for authentication flows. Users can now customize the authentication experience via \AuthConfiguration\, including options for MFA enforcement (enabling/disabling and selecting second factors like SMS/TOTP), anonymous user auto-upgrade, email link sign-in settings, custom branding (logo, language, strings bundle), and legal URLs (ToS, Privacy Policy). The \AuthService\ manages provider registration, navigation state, and authentication state, exposing methods for sign-in, re-authentication, and user management, while handling MFA resolution and error states internally.

FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Services · high confidence

New Firebase SwiftUI Example app added to e2eTest folder

A new Firebase SwiftUI example application has been added to the e2eTest directory, including its Xcode project configuration and build schemes. The app integrates multiple Firebase authentication UI libraries, including FirebaseAuthSwiftUI, FirebaseGoogleSwiftUI, FirebaseAppleSwiftUI, FirebaseFacebookSwiftUI, FirebaseOAuthSwiftUI, FirebasePhoneAuthSwiftUI, and FirebaseTwitterSwiftUI, along with FirebaseAuth and FirebaseCore. The project includes unit tests (FirebaseSwiftUIExampleTests) and UI tests (FirebaseSwiftUIExampleUITests), with the UI tests configured to run in random order and the unit tests configured to run in parallel.

e2eTest/FirebaseSwiftUIExample/FirebaseSwiftUIExample.xcodeproj · high confidence

New Firebase SwiftUI sample app for end-to-end testing

A new Firebase SwiftUI example application has been added to the e2eTest directory to serve as a test harness for the Firebase Auth SwiftUI components. This sample app demonstrates the integration of multiple authentication providers, including Apple, Google, Facebook, Twitter, Phone, Email, and various OAuth providers (GitHub, Microsoft, Yahoo, and LINE). It is configured to run against the local Firebase Auth emulator and includes a dedicated TestView that supports command-line arguments to enable specific testing scenarios, such as legacy sign-in flows and multi-factor authentication.

e2eTest/FirebaseSwiftUIExample/FirebaseSwiftUIExample · high confidence

New Firebase SwiftUI sample app with automated launch script

A new sample application, FirebaseSwiftUISample, has been added to demonstrate Firebase integration using SwiftUI. The entry includes the Xcode project configuration, a GoogleService-Info.plist for Firebase connectivity, and a run-sample.sh shell script. This script automates the process of building, installing, and launching the app in an iOS simulator, handling device selection and environment setup to simplify running the demo.

samples/swiftui/FirebaseSwiftUISample · high confidence

New Multi-Factor Authentication (MFA) types and session models

The \FirebaseAuthSwiftUI\ library now exposes new public types to support multi-factor authentication flows. \SecondFactorType\ defines the available second factors (SMS and TOTP). \TOTPEnrollmentInfo\ provides details for TOTP setup, including the shared secret, QR code URL, and verification status. \EnrollmentSession\ represents the state of an MFA enrollment process, tracking its type, status (e.g., initiated, verification pending, completed), and expiration. \MFAHint\ and \MFARequired\ are introduced to identify available MFA factors and signal when MFA is required for authentication.

FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Auth · high confidence

New Objective-C chat sample with FirebaseUI integration

The Objective-C demo sample now includes a complete chat interface built with FirebaseUI. This adds a new view controller that connects to a Firebase Realtime Database node, displaying messages in a table view with a custom cell layout that distinguishes between the current user's messages and others. The sample also implements real-time data binding for the message list and allows authenticated users to send new messages via a text input field.

samples/objc/FirebaseUI-demo-objc/Samples/Chat · high confidence

New PhoneAuthButtonView component for phone authentication

A new \PhoneAuthButtonView\ component has been added to the Firebase Phone Auth SwiftUI package, providing a dedicated UI button for initiating phone authentication. This view integrates with the existing \AuthService\ to retrieve the localized login button label and uses the standard \AuthProviderButton\ with a phone-specific style, allowing users to easily trigger the phone sign-in flow within their app.

FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Views · high confidence

New SwiftUI authentication example views for FirebaseUI

The sample app now includes three new example views demonstrating different ways to integrate Firebase Authentication with SwiftUI. AuthPickerViewExample shows a basic flow using AuthPickerView to handle sign-in and account management. CustomViewExample provides a fully custom UI with email/password sign-up/sign-in forms and provider buttons via AuthService. UIKitEmbeddingExample demonstrates how to embed FirebaseSwiftUI authentication flows inside a UIKit container using UIHostingController.

samples/swiftui/FirebaseSwiftUISample/FirebaseSwiftUISample/Examples · high confidence

New SwiftUI sample app demonstrating Firebase Authentication integration

The FirebaseSwiftUISample application has been added to provide a reference implementation for integrating Firebase Authentication with SwiftUI. The sample includes an AppDelegate for configuring Firebase, handling deep links, and managing APNs tokens, alongside a ContentView that showcases three distinct usage patterns: using the pre-built AuthPickerView, building custom UI via AuthService, and embedding the SwiftUI authentication interface within a UIKit application. It demonstrates support for multiple sign-in providers including Apple, Google, Facebook, Twitter, Phone, Email, and various OAuth providers such as LINE, GitHub, Microsoft, and Yahoo.

samples/swiftui/FirebaseSwiftUISample/FirebaseSwiftUISample/Application · high confidence

New SwiftUI-based Firebase Auth UI components

The FirebaseAuthUIComponents module now provides a complete set of SwiftUI views for authentication flows, replacing previous implementations. This includes a reusable AuthProviderButton with configurable ProviderStyle for various identity providers (Google, Facebook, Apple, etc.), an AuthTextField with built-in validation support and secure field toggling, a CountrySelector for phone number input, and a VerificationCodeInputField for multi-digit code entry. The update also introduces a FormValidator system for input validation, a Color+Hex extension for theme customization, and bundled asset catalogs containing provider-specific icons and the Firebase Auth logo.

FirebaseSwiftUI/FirebaseAuthUIComponents · high confidence

New SwiftUI-based authentication UI components and flow management

This release introduces a complete set of SwiftUI views for the Firebase Authentication flow, replacing previous implementations. Key additions include an AuthPickerView for selecting sign-in methods, dedicated views for email/password, email link, and phone number authentication, and comprehensive support for Multi-Factor Authentication (MFA) enrollment, resolution, and management. The update also introduces an AccountConflictModifier to handle anonymous user upgrades and account linking automatically, along with a LegacySignInRecoveryView to assist users with existing accounts. Error handling is centralized via a reusable error alert modifier, and the UI now supports localization strings and configurable branding elements like logos.

FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Views · high confidence

New utility classes for string localization, phone validation, and common auth helpers

The FirebaseAuthSwiftUI package now includes new utility files in the Utils directory to support UI and authentication logic. StringUtils centralizes localized strings for authentication views (such as email, password, and sign-in labels) with a fallback mechanism to the module bundle, enabling consistent internationalization. PhoneUtils provides validation for phone numbers, ensuring they start with a plus sign and contain a valid number of digits. CommonUtils introduces helper functions for email validation, secure nonce generation, SHA-256 hashing, and URL query parameter parsing, along with a dummy Firebase configuration method for SwiftUI previews.

FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Utils · high confidence

Swift Storage sample now uses FirebaseStorageUISwift

The Storage demo in the FirebaseUI Swift sample app has been updated to use the new FirebaseStorageUISwift product. This change replaces the previous Objective-C-based FirebaseUI storage integration with a native Swift implementation, allowing Swift Package Manager users to access storage UI features directly within their Swift projects.

samples/swift/FirebaseUI-demo-swift/Samples · high confidence

Swift sample project adds FirebaseStorageUISwift and localizations

The FirebaseUI demo for Swift now includes the new FirebaseStorageUISwift framework, allowing Swift Package Manager users to see how to integrate storage UI components. The project also adds extensive localization support with string files for over 50 languages and regions, and updates the build configuration to reference FirebaseDatabaseUI, FirebaseFirestoreUI, and FirebaseStorageUI frameworks alongside the core Firebase SDKs.

samples/swift/FirebaseUI-demo-swift.xcodeproj · high confidence

Behavioural changes

FirebaseAuthSwiftUI updated to version 16.1.0 with new error handling and reauthentication flows

The FirebaseAuthSwiftUI library has been updated to version 16.1.0. This release introduces a comprehensive new error handling system via the AuthServiceError enum, which now provides type-safe contexts for various reauthentication scenarios (OAuth, email, email link, and phone) and detailed account conflict descriptions. These changes enable more robust user experience handling for complex authentication flows, such as multi-factor authentication and anonymous account upgrades, by providing specific error types that UI components can react to.

FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources · high confidence

FirebaseStorageUI public headers updated for Firebase 9+ and SPM compatibility

The public header files in FirebaseStorageUI have been updated to support both Firebase 8.x (CocoaPods) and Firebase 9.0+ (CocoaPods), as well as Swift Package Manager (SPM) builds. The headers now conditionally import \FirebaseStorage.h\ or \FirebaseStorage-Swift.h\ depending on availability, and use forward declarations for SPM to avoid Clang module scanner failures. This ensures that the \UIImageView+FirebaseStorage\, \FUIStorageImageLoader\, and related APIs compile correctly across different Firebase versions and package managers.

FirebaseStorageUI/Sources/Public · high confidence

FirebaseUI Objective-C demo app project structure and localization updates

The FirebaseUI Objective-C demo application project file has been updated to include a comprehensive set of localizable string files for numerous languages (including Arabic, Chinese variants, European languages, and others) and registers several custom view controllers for authentication flows, such as email entry, password sign-in, sign-up, recovery, verification, and auth picker. This reflects the sample app's alignment with recent FirebaseUI features for customizable authentication UI and internationalization support.

samples/objc/FirebaseUI-demo-objc.xcodeproj · medium confidence

FirebaseUI Storage sample adds progressive image loading and cache clearing

The Objective-C Storage demo now uses progressive decoding for images via SDWebImage, providing a smoother loading experience for remote storage files, and includes a new 'Clear Cache' button in the navigation bar that allows users to manually clear both memory and disk image caches.

samples/objc/FirebaseUI-demo-objc/Samples/Storage · high confidence

Introduce new Objective-C FirebaseUI demo application

The Objective-C sample application has been restructured and renamed to FirebaseUI-demo-objc. This update introduces a new app delegate (FUIAppDelegate) that initializes Firebase, a sample browser view controller (FUISamplesViewController) to navigate between demo features like Chat and Storage, and updated project configuration files including entitlements for Apple Sign-In and push notifications, as well as an Info.plist configured for Google and Facebook authentication flows.

samples/objc/FirebaseUI-demo-objc · high confidence

Migrate to string catalog for localization

The Firebase Auth SwiftUI library has migrated its localization resources from the legacy .strings format to the modern .xcstrings string catalog. This change consolidates all localized strings into a single, structured file, supporting a wide range of languages including Arabic, German, Spanish, French, and many others, ensuring consistent and up-to-date text across the authentication UI components.

FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Strings · high confidence

Phone authentication now supports custom navigation callbacks

The phone authentication service now allows developers to define custom behavior when the phone sign-in button is tapped. Instead of the default navigation to an enter-phone-number view, users can pass a closure to \withPhoneSignIn(onTap:)\ to handle the interaction, such as presenting a custom sheet or performing a different navigation action. This change introduces \PhoneAuthProviderAuthUI\ to encapsulate this callback logic and the associated UI button.

FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Sources/Services · high confidence

Swift Package Manager compatibility and Firebase 9+ support for FirebaseStorageUI

FirebaseStorageUI now builds correctly with Swift Package Manager and supports Firebase SDK 9.x and later. The library introduces a Swift bridge (FirebaseStorageUISwift) that exposes native Swift APIs for loading images from Firebase Storage into UIImageViews, while the underlying Objective-C implementation has been updated to conditionally import FirebaseStorage headers to handle both legacy (8.x) and modern (9.0+) module structures. Additionally, progressive image loading is now gracefully degraded on Firebase 9+ to prevent crashes caused by the removal of internal fetcher access, ensuring stable image display without interruption.

FirebaseStorageUI/Sources · high confidence

Xcode project structures and schemes for FirebaseDatabaseUI and FirebaseFirestoreUI

The Xcode project files and shared schemes for the FirebaseDatabaseUI and FirebaseFirestoreUI frameworks have been updated. This change establishes the build configurations, source file references, and test targets for these UI components, ensuring they are correctly defined within the Xcode workspace for compilation and testing.

FirebaseDatabaseUI/FirebaseDatabaseUI.xcodeproj, FirebaseFirestoreUI/FirebaseFirestoreUI.xcodeproj · high confidence

Fixes

Added dummy GoogleService-Info.plist for samples

A placeholder GoogleService-Info.plist file has been added to the samples directory to support the Firebase UI demo application. This file contains dummy configuration values (such as client IDs and API keys) that allow the sample app to build and run without requiring a real Firebase project configuration, facilitating local development and testing of the sample code.

samples · high confidence

Test coverage

Added UI tests for the Firebase SwiftUI example app; Added end-to-end tests for Firebase Auth SwiftUI integration; Added initial test file for FirebaseAppleSwiftUI; Added initial test suite for FirebasePhoneAuthSwiftUI; Added unit tests for Firebase Storage UI image loading; Added unit tests for FirebaseAuthSwiftUI string localization and MFA enrollment data; Added unit tests for FirebaseDatabaseUI data sources and arrays.

Dependencies

FirebaseUI iOS 15.1.0 release with Swift 6 and Firebase 8+ compatibility

This update releases FirebaseUI for iOS version 15.1.0, introducing full compatibility with the Firebase iOS SDK versions 8.0 through 12.x and requiring Swift 6.0. The release mandates a minimum iOS deployment target of 13.0 for CocoaPods integration and iOS 17.0 for Swift Package Manager usage. It includes podspecs and SPM manifests for the Database, Firestore, and Storage UI libraries, ensuring they depend on the corresponding Firebase SDK subspecs within the supported version range.

(dependencies) · high confidence

Housekeeping

Repository maintenance and developer tooling updates

This change introduces several non-product files to improve the development workflow and repository hygiene. It adds \.clang-format\ and \.swiftformat\ configuration files to enforce consistent code style (Google Obj-C style and 2-space Swift indentation). A comprehensive \.gitignore\ is added to exclude build artifacts, Xcode user data, and generated files. New shell scripts are included: \format-swift.sh\ and \lint-swift.sh\ for running SwiftFormat, \test.sh\ and \local\_test.sh\ for running unit/UI tests via xcodebuild, and \release-swift.sh\ for managing semantic versioning and tagging of the SwiftUI packages. Documentation is updated with \CONTRIBUTING.md\ detailing the CLA and local testing steps, \AGENTS.md\ and \CLAUDE.md\ for AI agent guidance, and standard templates for issues and pull requests. The \README.md\ is also updated to reflect the current installation methods (SPM for SwiftUI, CocoaPods for UIKit) and minimum system requirements (iOS 17, Xcode 15).

(repo-wide) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 65 → 57 (-8.7)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 97 → 95 (-1.3)
  • Architecture 85 → 88 (+2.1)
  • Maturity 62 → 66 (+4.0)
  • Readiness 59 → 37 (-21.9)
  • Security 68 → 78 (+9.2)

Resolved (2)

  • Documentation: no installation or build instructions (README.md)
  • Off-boarding risk: anonymized user #1

New (34)

  • Assertions commented out: example (FirebaseSwiftUI/FirebaseAppleSwiftUI/Tests/FirebaseAppleSwiftUITests/FirebaseAppleSwiftUITests.swift)
  • Assertions commented out: example (FirebaseSwiftUI/FirebaseAuthSwiftUI/Tests/FirebaseAuthSwiftUITests/FirebaseAuthSwiftUITests.swift)
  • Assertions commented out: example (FirebaseSwiftUI/FirebaseFacebookSwiftUI/Tests/FirebaseFacebookSwiftUITests/FirebaseFacebookSwiftUITests.swift)
  • Assertions commented out: example (FirebaseSwiftUI/FirebaseGoogleSwiftUI/Tests/FirebaseGoogleSwiftUITests/FirebaseGoogleSwiftUITests.swift)
  • Assertions commented out: example (FirebaseSwiftUI/FirebaseOAuthSwiftUI/Tests/FirebaseOAuthSwiftUITests/FirebaseOAuthSwiftUITests.swift)
  • Assertions commented out: example (FirebaseSwiftUI/FirebasePhoneAuthSwiftUI/Tests/FirebasePhoneAuthSwiftUITests/FirebasePhoneAuthSwiftUITests.swift)
  • Assertions commented out: example (FirebaseSwiftUI/FirebaseTwitterSwiftUI/Tests/FirebaseTwitterSwiftUITests/FirebaseTwitterSwiftUITests.swift)
  • AuthTextField.body (cognitive 22) (FirebaseSwiftUI/FirebaseAuthUIComponents/Sources/Components/AuthTextField.swift)
  • AuthTextField.body (cyclomatic 16) (FirebaseSwiftUI/FirebaseAuthUIComponents/Sources/Components/AuthTextField.swift)
  • Coverage not measured — Swift suite
  • Duplicate intent with different signatures. Both types seem to represent the UI component for phone authentication. One is in Services (PhoneAuthProviderAuthUI) and one in Views (PhoneAuthButtonView). They both take an 'onTap' closure. It is unclear why two separate types exist for the same visual component with nearly identical initialization signatures (one adds @MainActor).
  • Duplicated block (11 lines × 2) (FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Views/MFAEnrolmentView.swift)
  • Duplicated block (13–15 lines × 3) (FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Views/MFAEnrolmentView.swift)
  • Duplicated block (14 lines × 2) (FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Views/MFAEnrolmentView.swift)
  • Duplicated block (17–19 lines × 3) (samples/swiftui/FirebaseSwiftUISample/FirebaseSwiftUISample/Application/ContentView.swift)
  • Duplicated block (18 lines × 4) (FirebaseSwiftUI/FirebaseAppleSwiftUI/Sources/Views/SignInWithAppleButton.swift)
  • Duplicated block (23 lines × 3) (FirebaseSwiftUI/FirebaseAppleSwiftUI/Sources/Views/SignInWithAppleButton.swift)
  • Inconsistent parameter naming for provider dependencies. Most specific provider buttons (Apple, Twitter, GenericOAuth) use the generic external name 'provider', while Facebook and Google use specific names ('facebookProvider', 'googleProvider'). Phone auth uses a closure 'onTap' instead of a provider object entirely, which is a domain difference, but the inconsistency between 'provider' and 'facebookProvider'/'googleProvider' is notable.
  • Inconsistent parameter naming for the same operation. One overload uses 'context' while the other uses 'with'. In Swift, when overloading methods, it is standard convention to use distinct external parameter names to disambiguate, but 'with' is often used for the primary/simplest case while 'context' implies a complex object. However, mixing 'context' and 'with' for what appears to be the same logical action (re-authentication) is slightly confusing compared to a pattern like 'reauthenticate(with: AuthCredential)' and 'reauthenticate(using: ReauthContext)' or similar.
  • Members sharing a duplicated core (4 members, 50+ identical tokens) (FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/Views/MFAEnrolmentView.swift)
  • …and 14 more

Changes since last survey

  • 10 commits — 8 feature/other, 2 fixes

By area

  • (repo) — 6 commits
  • (root) — 1 commit
  • .github/workflows — 1 commit
  • FirebaseSwiftUI/FirebaseAuthSwiftUI — 1 commit
  • e2eTest/FirebaseSwiftUIExample — 1 commit

Notable commits

  • fix: Merge pull request #1394 from firebase/fix/legacy-recovery-sheet
  • fix: fix(auth): preserve AuthService in the authentication sheet environment
  • change: Merge branch 'main' of https://github.com/firebase/FirebaseUI-iOS into codex/preserve-auth-service-in-sheet
  • change: Merge pull request #1395 from firebase/dependabot/github_actions/actions/setup-java-6.0.1
  • change: Merge pull request #1396 from firebase/dependabot/swift/github.com/firebase/firebase-ios-sdk-12.19.1
  • change: Merge upstream main into codex/preserve-auth-service-in-sheet
  • change: Preserve AuthService in the authentication sheet environment
  • change: chore(deps): bump actions/setup-java from 6.0.0 to 6.0.1
  • change: chore(deps): bump github.com/firebase/firebase-ios-sdk
  • change: test(e2e): strengthen legacy recovery assertions after review

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

firebase/FirebaseUI-iOS was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 8cde671a9c5b5fd7f48153cd4c30228c5dd6b4db — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.