firebase/quickstart-ios
53.0
Adequate · 30 September 2026
16.2k
lines of production code
Swift
primary language
2
measurements over time
What this system is
This repository is a collection of sample applications for the Firebase iOS SDK, designed to demonstrate integration with various Firebase services such as Authentication, Firestore, Analytics, and Cloud Messaging. It provides cross-platform implementations for iOS, macOS, tvOS, and watchOS, utilizing modern Swift and SwiftUI architectures. The system serves as a practical reference for developers, offering complete project structures, mock configurations for local testing, and automated CI scripts to facilitate building and validating these examples.
How it got here
2015–2016 — Initial repository setup and quickstart creation
26 changes.
This period established the foundational structure of the Firebase iOS Quickstarts repository, introducing sample applications for core services including Authentication, Analytics, Database, Storage, Remote Config, and Messaging. The work focused on creating complete, cross-platform Xcode projects that demonstrate key Firebase integrations using modern iOS development practices like SwiftUI and SceneDelegate. It also included essential infrastructure such as mock configuration files, documentation, and CI-ready Xcode schemes to facilitate local development and testing.
2017–2019 — SwiftUI migration and multi-platform expansion
22 changes.
This period focused on modernizing Firebase quickstart samples by migrating UI implementations from Storyboards to SwiftUI and adopting Swift Package Manager for dependency management. The team expanded support across the Apple ecosystem, adding multi-platform capabilities for iOS, macOS, tvOS, and watchOS to various example applications. Additionally, new quickstarts were introduced for services like Installations and In-App Messaging, while CI infrastructure and UI test coverage were significantly enhanced to support these changes.
2020–2021 — SwiftUI quickstart expansion
23 changes.
This period focused on creating and expanding a suite of SwiftUI-based example applications across Firebase services, including Authentication, Firestore, Realtime Database, Analytics, and App Distribution. The work involved building complete, cross-platform demo apps that demonstrated modern iOS development patterns such as async/await, ViewModel architectures, and native UI components. Additionally, initial test suites and project configurations were established to support these new examples and ensure build stability.
2022–2026 — Example app modernization and AI expansion
17 changes.
This period focused on modernizing Firebase example applications by migrating them to SwiftUI, adopting Swift Package Manager, and integrating Apple's TipKit framework. Significant effort was directed toward expanding the Firebase AI quickstart with new features like live audio sessions, function calling, and multimodal interactions using ConversationKit. Additionally, the messaging and performance examples were updated to include new capabilities such as notification service extensions and vision-based image processing.
Features
Add ConfigExample iOS quickstart project
The ConfigExample iOS quickstart project is added, providing a complete Xcode project structure for demonstrating Firebase Remote Config integration. This includes the main application target with Swift source files (AppDelegate, SceneDelegate, RemoteConfigViewController, RemoteConfigView), unit and UI test targets, and necessary resources such as GoogleService-Info.plist, RemoteConfigDefaults.plist, and sample JSON recipe files. The project is configured to link against the FirebaseRemoteConfig framework and includes a shared Xcode scheme for building, testing, and running the app.
config/ConfigExample.xcodeproj · high confidence
Add Firebase App Distribution iOS quickstart example
The AppDistributionExample iOS app has been added to demonstrate how to integrate Firebase App Distribution. The example initializes Firebase in the AppDelegate, and the main view controller checks for new app releases on view appearance, presenting an alert with an update link when a new version is available. The project includes standard iOS app structure files such as the scene delegate, launch screen, and asset catalogs.
appdistribution/AppDistributionExample · high confidence
Add Firebase Remote Config iOS quickstart with mock configuration
This change introduces a new Firebase Remote Config quickstart for iOS, providing a sample app and documentation that demonstrate how to define user-facing text, complex JSON entities, and locale-specific content via the Firebase console. The included \GoogleService-Info.plist\ contains mock project credentials (e.g., \mockproject-1234\) for testing purposes, allowing developers to run the sample without configuring a real Firebase project immediately.
config, functions · high confidence
Add In-App Messaging quickstart project and documentation
This change introduces a new quickstart application for Firebase In-App Messaging, including the necessary configuration file (GoogleService-Info.plist) with mock project details and a README with setup instructions. Users can now clone and run the InAppMessagingExample project to test in-app messaging campaigns directly on iOS devices or simulators.
inappmessaging · high confidence
Add InstallationsExample iOS interface
The InstallationsExample app now includes a main storyboard defining the user interface for testing Firebase Installations. The layout features three primary action buttons—Get Installation, Get Auth Token, and Delete Installation—along with a read-only log text view to display operation results.
installations/InstallationsExample/Base.lproj · high confidence
Add InstallationsExample iOS quickstart app
Introduces the InstallationsExample Xcode project, providing a Swift-based iOS application that demonstrates the Firebase Installations SDK. The project includes the main app target with standard UI components (AppDelegate, ViewController, Storyboard), a unit test target, and a mock GoogleService-Info.plist configured for the com.google.firebase.quickstart.InstallationsExample bundle ID. It is set up to use the firebase-ios-sdk via Swift Package Manager and shares common assets like launch screens and images with other quickstarts.
installations/InstallationsExample.xcodeproj · high confidence
Add Nano Banana image generation examples using Gemini 2.5 Flash and Agent Platform
The Firebase AI quickstart now includes two new SwiftUI screens for generating images: a standard 'Nano Banana' example using the Gemini 2.5 Flash Image model and a 'Nano Banana From Template' example using the Agent Platform's template generation capabilities. Both screens allow users to input text prompts and view generated images, supporting both Google AI and Agent Platform backends, and include error handling and progress indicators.
firebaseai/FirebaseAIExample/Features/NanoBanana · high confidence
Add Restaurant and Review data models for Firestore
The sample app now includes structured data models for Restaurant and Review entities, enabling the UI to display and interact with restaurant listings and user reviews stored in Firestore. The Restaurant model captures details such as name, category, city, price, rating, and photo URL, while the Review model stores rating, user information, text, and timestamp, both conforming to Codable for seamless serialization with Firestore documents.
firestore/FirestoreSwiftUIExample/Model · high confidence
Add SwiftUI views for filtering, restaurant details, and reviews
The Firestore SwiftUI example now includes a complete set of user interface components for browsing and interacting with restaurant data. Users can apply filters for category, city, price, and sort order via the new FilterView, view detailed restaurant information including photos and reviews in RestaurantDetailView, and submit their own ratings and text reviews through WriteReviewView. The list view (RestaurantListView) now supports real-time updates and displays items with star ratings and price indicators using the new StarsView and PriceView components.
firestore/FirestoreSwiftUIExample/Views · high confidence
Add SwiftUI-based A/B Testing quickstart with multiplatform support
The A/B Testing quickstart sample has been updated to use SwiftUI and now supports iOS, macOS, watchOS, tvOS, and Mac Catalyst. The project includes platform-specific configuration files (Info.plist, entitlements) and a mock GoogleService-Info.plist to facilitate local testing. The app demonstrates A/B testing by allowing users to toggle between light and dark color schemes via Remote Config, with a refresh mechanism to update the UI based on experiment variants.
abtesting · high confidence
Add custom login and signed-out UI views for the authentication example
The authentication example now includes custom UIKit views for the sign-in flow. A new LoginView presents email and password text fields with specific text content types (email address and password) to guide iOS input behavior, along with login and create account buttons. A SignedOutView displays a message and icon when no user is signed in. These views replace or supplement the default authentication UI in the example app.
authentication/AuthenticationExample/CustomViews · high confidence
Add macOS and tvOS samples for Firebase Analytics
The AnalyticsExampleSwiftUI sample app now supports macOS and tvOS platforms. The app entry point initializes Firebase and applies platform-specific UI adjustments, such as minimum window sizing on macOS and navigation view styling on tvOS. The main content view demonstrates Firebase Analytics capabilities by allowing users to set user properties (favorite season, preferred temperature units) and log interaction events (hot/cold weather preference), with platform-specific layout handling for tvOS.
analytics/AnalyticsExampleSwiftUI · high confidence
Added Custom Token Generator example page
A new web-based example page (auth.html) has been added to the authentication/web directory. This page allows users to upload a Firebase service account JSON file and generate signed custom authentication tokens for a specified user ID, facilitating local testing of custom authentication flows.
authentication/web · high confidence
Added FriendlyEats iOS quickstart with mock configuration
Added the FriendlyEats iOS sample application to the Firestore quickstarts, including a mock GoogleService-Info.plist for local development and a README detailing setup, authentication via FirebaseUI, and required Firestore security rules and indexes.
firestore · high confidence
Added SwiftUI passwordless login demo app
A new SwiftUI-based demo application has been added to showcase passwordless authentication using Firebase Email Link. The app allows users to enter their email address to receive a sign-in link, handles the deep link via Associated Domains, and displays success or error states. This includes the main \ContentView\ for the login flow, a \SuccessView\ for post-login feedback, and the necessary iOS configuration files (Info.plist, entitlements) to support the Firebase integration and universal links.
swiftui/PasswordlessSwiftUI/PasswordlessSwiftUI · high confidence
Added Xcode schemes for iOS, macOS, and tvOS targets
The project now includes shared Xcode schemes for the AnalyticsExample (iOS), AnalyticsExampleMac (macOS), and AnalyticsExampleTV (tvOS) targets. These schemes configure the build, test, and launch actions for each platform and enable the \-FIRAnalyticsDebugEnabled\ command-line argument by default to facilitate Firebase Analytics debugging during development.
analytics/AnalyticsExample.xcodeproj/xcshareddata · high confidence
Added iOS In-App Messaging quickstart example
A new iOS example project (InAppMessagingExample) has been added to demonstrate In-App Messaging integration. The app initializes Firebase, provides a text field for entering event names, and includes a button to log those events via Firebase Analytics, allowing users to test how in-app messages are triggered by analytics events.
inappmessaging/InAppMessagingExample · high confidence
Added iOS notification service extension for message delivery metrics and content modification
The MessagingExampleSwift sample now includes a NotificationServiceExtension that intercepts incoming push notifications to modify their display title and automatically export delivery metrics to BigQuery via Firebase Messaging. This allows users of the example app to track notification delivery performance and customize notification content before it is presented.
messaging/NotificationServiceExtension · high confidence
Added mock configuration for App Distribution quickstart
The App Distribution quickstart now includes a mock GoogleService-Info.plist file, allowing developers to open and build the example project without needing to configure a real Firebase project or download a valid service configuration file.
appdistribution · high confidence
Added mock configuration for Firebase Auth quickstart
The authentication quickstart now includes a \GoogleService-Info.plist\ file containing mock project credentials (project ID \mockproject-1234\), allowing the sample app to be built and run without requiring immediate configuration of a real Firebase project. The accompanying README has been updated to provide comprehensive setup instructions for various identity providers, including Google, Apple, Twitter, Microsoft, GitHub, Yahoo, and Facebook, guiding users on how to enable these methods in the Firebase Console and configure the necessary URL schemes and API keys within the Xcode project.
authentication · high confidence
Added quickstart examples for custom, passwordless, and phone authentication
The authentication quickstart now includes dedicated view controllers for demonstrating additional Firebase Authentication methods. Users can explore custom token sign-in via CustomAuthViewController, passwordless email sign-in flows via PasswordlessViewController (including dynamic link handling), and phone number verification via PhoneAuthViewController. These new screens are built on a shared OtherAuthViewController base class that standardizes the UI layout and interaction patterns for these specific authentication flows.
authentication/AuthenticationExample/ViewControllers/OtherAuthMethodControllers · high confidence
Added shared Xcode scheme for the AuthenticationExample app
The project now includes a shared Xcode scheme (AuthenticationExample.xcscheme) that defines build, test, launch, profile, analyze, and archive actions. This configuration enables consistent execution of the main app, unit tests, and UI tests across the development environment and CI systems.
authentication/AuthenticationExample.xcodeproj/xcshareddata · high confidence
Added shared error handling and color utility extensions
The example app now includes a new \ApplicationError\ struct for standardized error handling and a \Color+Hex\ extension that allows creating SwiftUI colors from hex strings (both RGB and RGBA formats). These utilities are part of the shared codebase structure, improving code reusability and consistency across the application.
firebaseai/FirebaseAIExample/Shared, firebaseai/FirebaseAIExample/Shared/Util · high confidence
Added slide transition animator for view controllers
The authentication example now includes a custom \Animator\ utility that implements \UIViewControllerAnimatedTransitioning\ to provide slide-in/slide-out animations between view controllers. This animator supports horizontal transitions in either direction (left or right) with a fixed duration of 0.20 seconds, allowing for smoother visual navigation within the example app.
authentication/AuthenticationExample/Utility/TransitionAnimator · high confidence
Analytics example now supports iOS, tvOS, and macOS with SwiftUI
The AnalyticsExample project has been updated to include targets for tvOS and macOS in addition to the existing iOS app, allowing users to explore Firebase Analytics across Apple platforms. The iOS target has been modernized to use SwiftUI (evidenced by the addition of \AnalyticsExampleSwiftUIApp.swift\ and \ContentView.swift\) and the iOS 13+ lifecycle (\SceneDelegate.swift\), while retaining UIKit-based views like \AnalyticsViewController\ and \BlogViewController\ for demonstration purposes.
analytics/AnalyticsExample.xcodeproj · high confidence
Expanded Crashlytics example app to support macOS, tvOS, and watchOS platforms
The Crashlytics example project has been updated to include full multi-platform support, adding dedicated build schemes and configurations for macOS, tvOS, and watchOS (including complications and notifications). This allows developers to test and integrate Crashlytics across the entire Apple ecosystem, with specific assets and UI test targets added for each new platform.
crashlytics · high confidence
Initial commit of Firebase Realtime Database SwiftUI quickstart documentation and assets
This change introduces the foundational documentation and configuration files for the Firebase Realtime Database SwiftUI quickstart application. It includes a README with setup instructions, an outline detailing the MVVM architecture and data structure, a media guide with screenshots and GIFs for iOS, macOS, and tvOS, and a sample database rules file (\DatabaseExampleRules.md\) demonstrating secure read/write permissions for users, posts, and comments. Additionally, it adds a \.clang-format\ file for code style consistency and a dummy \GoogleService-Info.plist\ for quickstart builds.
database · high confidence
Initial iOS Database Quickstart sample in Swift
Adds the DatabaseExampleSwift project, a complete iOS application demonstrating how to integrate Firebase Authentication and the Realtime Database in Swift. The sample includes views for email/password sign-in and sign-up, a main feed of recent posts, and user-specific views for my posts and top posts. It showcases core database operations such as creating posts with fan-out writes, reading data via observers, deleting comments, and using transactions to atomically increment star counts on posts.
database/DatabaseExampleSwift · high confidence
Initial iOS Database sample project structure
The DatabaseExample iOS sample application is introduced, providing a complete Xcode project structure for demonstrating Firebase Realtime Database integration. The project includes Swift-based view controllers for signing in, listing recent and top posts, viewing post details, and managing user posts, along with data models for Posts, Users, and Comments. It links against FirebaseAuth, FirebaseDatabase, and FirebaseDatabaseUI frameworks and includes a UI test target to verify core interactions.
database/DatabaseExample.xcodeproj · high confidence
Initial release of the FriendlyEats iOS sample app
Adds the FriendlyEats iOS application, a complete sample demonstrating Firebase Firestore and Authentication integration. The app allows users to browse a list of restaurants, apply filters for category, city, and price, and view detailed restaurant pages with user-submitted reviews. It features real-time data synchronization via Firestore snapshot listeners, secure user sign-in using Firebase Auth, and atomic transactions to safely update restaurant ratings when new reviews are posted.
firestore/FirestoreExample · high confidence
Initial repository setup for Firebase iOS Quickstarts
This change establishes the foundational structure for the Firebase iOS Quickstarts repository. It introduces a collection of sample projects covering Firebase APIs such as Authentication, Analytics, Crashlytics, Firestore, and Functions, allowing users to run them directly in Xcode. To facilitate local development, it adds a mock GoogleService-Info.plist for configuration, a Mintfile to manage the SwiftFormat dependency for code styling, and a .gitignore to exclude build artifacts and sensitive files. Additionally, it provides standard open-source governance files, including an Apache 2.0 LICENSE, a CONTRIBUTING guide with CLA instructions, and an issue template to direct users to the appropriate support channels.
(repo-wide) · high confidence
MessagingExample app now includes a Notification Service Extension and UI tests
The MessagingExample iOS app has been updated to include a NotificationServiceExtension, enabling support for rich push notification features such as media attachments and custom actions. Additionally, a new UI test bundle (MessagingExampleUITests) has been added to the project, providing a framework for automated end-to-end testing of the messaging interface.
messaging/MessagingExample.xcodeproj · high confidence
New CI scripts for building, testing, and managing secrets in GitHub Actions
The \scripts/\ directory now includes a suite of new shell and Ruby scripts to streamline CI workflows. \test.sh\ and \build-for-testing.sh\ handle building and testing quickstarts across iOS, tvOS, macOS, and Catalyst, with automatic scheme detection for SPM and Swift-suffixed targets, and support for Xcode 16+ and macOS 15. \check\_secrets.sh\ and \install\_secrets.sh\ manage the decryption and installation of \GoogleService-Info.plist\ files from GitHub Actions secrets, ensuring tests only run when secrets are available. \add\_framework\_script.rb\ automates the addition of frameworks to Xcode projects, including proper embedding settings for static frameworks. \framework\_test.sh\ provides a focused build-and-test path for framework samples, while \info\_script.rb\ adds \GoogleService-Info.plist\ references to project targets. \prereq\_core.sh\ orchestrates secret installation for CI, and \style.sh\ enforces Swift formatting using \swiftformat\ via Mint.
scripts · high confidence
New FCM Example app interface with token display and topic subscription
The messaging sample app now includes a new main storyboard that provides a user interface for interacting with Firebase Cloud Messaging. Users can view their FCM token and remote registration token via dedicated labels, log the current token using a 'Log Token' button, and subscribe to the 'weather' topic using a 'Subscribe To Weather' button.
messaging/MessagingExample/Base.lproj · high confidence
New Firebase Analytics quickstart sample for iOS
Added the AnalyticsExample quickstart project, providing a complete iOS application that demonstrates how to integrate Firebase Analytics. The sample includes a user interface with controls for setting user properties (such as favorite season and preferred units) and logging custom events (such as temperature changes and blog interactions). It also demonstrates screen view tracking within a secondary blog view controller and includes necessary configuration files like entitlements, Info.plist, and scene delegates to support modern iOS app lifecycle and Mac Catalyst.
analytics/AnalyticsExample · high confidence
New Firebase Realtime Database SwiftUI quickstart app
The DatabaseExampleSwiftUI location now provides a complete, cross-platform (iOS, macOS, tvOS) SwiftUI application demonstrating Firebase Realtime Database and Authentication. Users can sign in, create posts, view recent and top posts, star/unstar content using atomic transactions, and add comments. The app includes shared models (Post, Comment, UserViewModel), view models for data handling, and UI tests to verify the login and sign-up flows.
database/DatabaseExampleSwiftUI · high confidence
New Firebase Remote Config iOS quickstart example
Added a new iOS quickstart application in the config/ConfigExample directory that demonstrates Firebase Remote Config integration. The app features a UI with configurable top and bottom labels, supports fetching and activating remote configuration values, and includes logic to update the bottom label text based on a 'typedRecipeKey' JSON payload. It also implements a config update listener to react to remote changes and provides a 'Fetch & Activate' button for manual triggering.
config/ConfigExample · high confidence
New Firestore SwiftUI example app with anonymous sign-in
A new standalone iOS example application, FirestoreSwiftUIExample, has been added to the firestore directory. This app demonstrates how to integrate Firebase with SwiftUI, initializing the FirebaseApp and presenting a SignInView as the root interface to allow users to sign in anonymously.
firestore/FirestoreSwiftUIExample · high confidence
New Function Calling and Template-based Generative AI examples
The Firebase AI quickstart now includes dedicated examples for Function Calling and Template-based content generation. The Function Calling feature demonstrates how to handle model-invoked tools (such as a weather service) within a chat interface, supporting both streaming and non-streaming responses. Additionally, a new Template-based example shows how to generate content using a predefined template ID with streaming support. Both features are implemented using SwiftUI and the ConversationKit framework, allowing users to interact with Google AI and Agent Platform backends.
firebaseai/FirebaseAIExample/Features/FunctionCalling · high confidence
New InstallationsExample iOS app for Firebase Installations
A new example application has been added to demonstrate the Firebase Installations SDK for iOS. The app provides a user interface with buttons to retrieve the installation ID, fetch an auth token (including expiration details), and delete the current installation. It also logs these operations and listens for installation update notifications, serving as a reference implementation for integrating Firebase Installations into Swift-based iOS projects.
installations/InstallationsExample · high confidence
New Live AI session view model with audio and typewriter support
The Live feature now includes a \LiveViewModel\ that manages real-time audio interactions with Gemini models (specifically \gemini-3.1-flash-live-preview\ for Google AI and \gemini-live-2.5-flash-native-audio\ for Agent Platform). This view model handles microphone recording, audio playback toggling (disabled by default on the simulator), and connection state management. It also introduces a \TypeWriterViewModel\ to render model responses with a typewriter effect, adjusting display speed based on whitespace and sentence-ending punctuation.
firebaseai/FirebaseAIExample/Features/Live/ViewModels · high confidence
New SwiftUI-based Cloud Storage quickstart for iOS, macOS, and tvOS
The storage directory now includes a complete, cross-platform sample application built with SwiftUI. This quickstart demonstrates core Cloud Storage for Firebase capabilities, including uploading images from data or local files, retrieving download URLs, and downloading images back to the device. The implementation uses Firebase Authentication (anonymous sign-in) and Firebase Storage, featuring platform-specific UI components such as the iOS PHPickerViewController for image selection and macOS drag-and-drop support, while sharing core logic through a common ViewModel and ContentView across iOS, macOS, and tvOS targets.
storage · high confidence
New UI components for the Firebase AI example app
The Firebase AI example app now includes several new SwiftUI views to enhance the user interface: ErrorDetailsView displays detailed error information including safety ratings and block reasons; FilterChipView provides a styled toggle for selecting use cases; InlineTip introduces a TipKit-based component for displaying contextual tips; ProgressOverlay shows a loading indicator during operations; and SampleCardView presents sample interactions with distinct icons and colors for different use cases like text, image, and video.
firebaseai/FirebaseAIExample/Shared/Views · high confidence
New audio processing components for the Firebase AI example
The Firebase AI example app now includes a dedicated audio subsystem in the Shared/Audio directory, introducing \AudioController\ to manage AVAudioSession configuration and route changes, \Microphone\ to capture audio via AVAudioEngine taps, \AudioPlayer\ to handle playback and format conversion, and \AudioBufferHelpers\ to convert between Data and AVAudioPCMBuffer formats. These components replace previous ad-hoc implementations to provide a structured, reusable foundation for voice interaction features within the example app.
firebaseai/FirebaseAIExample/Shared/Audio · high confidence
New authentication example app with account linking and token revocation
The authentication quickstart now includes a complete iOS example app featuring a login flow, a user profile management screen, and new capabilities for account linking and token revocation. Users can now link their existing Firebase account to additional providers (Google, Facebook, Apple, and others) via the new AccountLinkingViewController, and can revoke Sign in with Apple tokens when deleting their account.
authentication/AuthenticationExample/ViewControllers · high confidence
New authentication example models for UI and user actions
The authentication quickstart app now includes new model files (AuthProvider, OtherAuthMethod, Section, Item, UserActions) that define the data structures for the login and account management UI. These models specify the available identity providers (Google, Apple, etc.), configure alternative auth methods (passwordless, phone, custom), and define user actions (sign out, link providers, delete account), enabling the example app to present a structured list of authentication options and manage user interactions.
authentication/AuthenticationExample/Models · high confidence
New utility components for the Authentication Example app
The authentication quickstart now includes a set of new utility files to support its UI and logic. CryptoUtils provides secure random nonce generation and SHA-256 hashing, which are essential for secure authentication flows like OAuth. DataSourceProvider and its associated protocols abstract away UITableView configuration, allowing the app to display user data and actions in a structured list. Extensions add helper methods for UIKit components and extend the Firebase User model to conform to the new data source protocols, enabling easy display of user profile information and available actions. Finally, LoginDelegate defines a protocol for signaling successful login events.
authentication/AuthenticationExample/Utility · high confidence
Shared iOS launch screen and asset configuration
The shared module now includes a new LaunchScreen.xib that displays the application logo centered on the screen, along with a Bladefile configuration that mounts the logo asset into the iOS app icon and logo image sets. This ensures consistent branding across the shared iOS launch experience.
shared · high confidence
iOS Authentication Quickstart project structure and dependencies
The iOS Authentication Quickstart sample app project has been restructured to include support for Facebook login alongside existing Firebase Authentication and Google Sign-In integrations. The project now references the \FacebookLogin\ framework in its build settings and includes specific view controllers for custom authentication, phone authentication, passwordless authentication, and account linking, providing a comprehensive example of various authentication flows.
authentication/AuthenticationExample.xcodeproj · high confidence
iOS Database Example adds Swift bridging and modern UI components
The iOS Database Example now includes a Swift bridging header to expose Objective-C utilities to Swift code, alongside new UI resources such as a PostTableViewCell storyboard and a UIViewController category for displaying alerts and spinners. These additions support the sample's user interface, enabling features like post listing, sign-in flows, and commenting as referenced in the commit history.
database/DatabaseExample · high confidence
Behavioural changes
AB Testing example app refactored to SwiftUI with multiplatform and async support
The AB Testing shared code has been rewritten in SwiftUI, introducing a new app entry point that initializes Firebase Remote Config and manages app state via an observable configuration object. This update adds multiplatform support for iOS, macOS, tvOS, and watchOS, including specific UI adjustments for navigation styles and Catalyst environments. For users on modern platforms (iOS 15+, macOS 12+, etc.), the app now utilizes Swift concurrency (async/await) for fetching remote configuration and supports native pull-to-refresh gestures, while falling back to older callback-based methods on legacy systems. A manual refresh button is also provided for immediate configuration updates.
abtesting/Shared · high confidence
ABTestingExample project updated to support multiplatform targets
The ABTestingExample Xcode project has been restructured to support building and testing across iOS, macOS, tvOS, watchOS, and Catalyst. This change introduces dedicated build schemes and test targets for each platform, ensuring that the example app can be developed and validated on Apple's full ecosystem.
abtesting/ABTestingExample.xcodeproj · high confidence
App Distribution example project now includes Firebase Analytics and debug logging
The AppDistributionExample Xcode project has been updated to link the FirebaseAnalytics framework alongside FirebaseAppDistribution-Beta, enabling analytics tracking within the sample app. Additionally, the run scheme now automatically passes the -FIRDebugEnabled command-line argument, ensuring verbose Firebase debug logs are visible during development and testing.
appdistribution/AppDistributionExample.xcodeproj · high confidence
Enable Firebase debug logging in the iOS example app
The FirebaseAIExample iOS scheme now launches the application with the -FIRDebugEnabled command-line argument enabled by default. This change ensures that Firebase debug logs are automatically captured when running the sample app from Xcode, aiding developers in diagnosing issues without manual configuration.
firebaseai/FirebaseAIExample.xcodeproj/xcshareddata · high confidence
Firebase AI Example app restructured with new home screen and TipKit integration
The Firebase AI Example app has been reorganized to provide a centralized home screen (ContentView) that allows users to select a backend provider and filter samples by use case, with navigation links to specific demo screens such as Chat, Nano Banana, and Live Audio. The app entry point now initializes TipKit for in-app tips and configures Firebase App Check with a debug provider for development builds, ensuring resources are protected while simplifying the setup process for new users.
firebaseai/FirebaseAIExample · high confidence
Firebase AI Example project modernized for Xcode 16 and Swift Package Manager
The FirebaseAIExample Xcode project has been updated to the Xcode 16 project format (objectVersion 77) and migrated to use Swift Package Manager for dependency management. The example app now integrates ConversationKit, FirebaseAILogic, and swift-markdown-ui as remote Swift packages, replacing previous framework-based or manual dependency setups. This change simplifies the project structure and ensures compatibility with modern Xcode tooling.
firebaseai/FirebaseAIExample.xcodeproj · high confidence
Firebase AI quickstart refactored to use ConversationKit and modernize chat features
The Chat, Grounding, and Multimodal example features have been completely rewritten to use the ConversationKit framework, replacing the previous UI implementation. This change introduces a standardized chat experience with streaming responses, error handling, and new UI components like bouncing dots for loading states. The Multimodal feature now supports attaching photos, files, and web links via PhotosUI and file pickers, while the Grounding feature displays search source links and rendered Google Search suggestions. The default model has been updated to gemini-3.5-flash-lite, and the app now supports switching between Google AI and Agent Platform backends.
firebaseai/FirebaseAIExample/Features/Chat, firebaseai/FirebaseAIExample/Features/Grounding, firebaseai/FirebaseAIExample/Features/Multimodal · high confidence
Firestore Example project structure and configuration
The FirestoreExample Xcode project has been restructured to include both a UIKit-based sample (FirestoreExample) and a SwiftUI-based sample (FirestoreSwiftUIExample). The project configuration now links FirebaseAuth, FirebaseFirestore, FirebaseAuthUI, FirebaseEmailAuthUI, and SDWebImage frameworks. The SwiftUI example specifically links FirebaseAuth and FirebaseFirestore, and includes views for restaurant listings, filtering, reviews, and sign-in, along with associated view models and extensions.
firestore/FirestoreExample.xcodeproj · high confidence
Functions quickstart demo rewritten in SwiftUI for iOS, macOS, and tvOS
The FunctionsExample quickstart has been migrated from UIKit to SwiftUI, providing a unified, cross-platform demo app for iOS, macOS, and tvOS. The new interface features shared views for calling Cloud Functions (such as adding numbers and capitalizing messages) and includes platform-specific asset catalogs and entitlements to support the expanded target range.
functions/FunctionsExample · high confidence
In-App Messaging example project renamed and restructured
The In-App Messaging quickstart project has been renamed from 'InAppMessagingExampleSwift' to 'InAppMessagingExample' and its legacy build schemes have been removed. The project file now references the 'FirebaseInAppMessaging-Beta' and 'FirebaseAnalytics' frameworks, and the target configuration reflects a migration to Swift 5 with updated Xcode compatibility settings.
inappmessaging/InAppMessagingExample.xcodeproj · medium confidence
Live screen now uses TipKit and adds simulator-only audio toggle
The LiveScreen view has been updated to replace the custom TipView with Apple's TipKit framework for displaying tips, and introduces an AudioOutputToggle that allows users to enable or disable audio playback. This audio toggle is conditionally compiled to appear only when running on the simulator, providing a way to test audio features in that environment without affecting device behavior.
firebaseai/FirebaseAIExample/Features/Live/Screens · high confidence
Modularized prerequisite installation scripts for Firebase quickstarts
The prerequisite installation process has been reorganized into individual, modular shell scripts (e.g., abtesting.sh, analytics.sh, authentication.sh) under the scripts/install\_prereqs directory. Each script now handles setup for a specific Firebase product by sourcing a common core script (prereq\_core.sh) with product-specific directory and project variables. This change simplifies the maintenance of individual quickstart samples and allows for more targeted configuration, such as the specific GoogleService-Info.plist updates in the installations script.
_scripts/install\prereqs · high confidence
New model definitions for backend selection and sample configurations
The Firebase AI quickstart app now includes new data models to support its updated structure. BackendOption.swift introduces a choice between the 'Gemini Developer API' and the 'Agent Platform Gemini API' for users to select their backend. UseCase.swift defines categories for filtering samples, including Text, Image, Video, Audio, Document, and Function Calling. Sample.swift provides a comprehensive set of pre-configured examples, such as travel tips, blog post creation, and image generation using 'Nano Banana 2' and 'Gemini 3.1 Flash', allowing users to quickly explore different capabilities of the Firebase AI SDK.
firebaseai/FirebaseAIExample/Shared/Models · high confidence
Passwordless SwiftUI demo project configuration
The PasswordlessSwiftUI Xcode project has been configured to use the Swift Package Manager for dependency management, specifically integrating the firebase-ios-sdk (FirebaseAuth), replacing previous CocoaPods references. The project targets iOS 12.0 and includes the necessary source files (PasswordlessSwiftUIApp.swift, ContentView.swift), resources (GoogleService-Info.plist, Assets), and entitlements to run the passwordless authentication demo.
swiftui/PasswordlessSwiftUI/PasswordlessSwiftUI.xcodeproj · high confidence
Performance example app migrated to SwiftUI and SPM
The Performance example project has been updated to use SwiftUI for its user interface and Swift Package Manager for dependency management, replacing the previous storyboard-based implementation and CocoaPods setup. This change updates the iOS and tvOS targets to include SwiftUI views (such as MainView, UploadView, and DownloadView) and links the FirebasePerformance and FirebaseStorage frameworks via SPM, ensuring the quickstart sample aligns with modern Apple development practices.
performance/PerformanceExample.xcodeproj · high confidence
Performance example app rewritten in SwiftUI
The performance example app in the Shared module has been replaced with a new SwiftUI implementation. This update introduces a modern user interface with dedicated views for downloading images, classifying them using Vision, generating saliency maps, and uploading results to Firebase Storage. The underlying logic now utilizes Swift concurrency (async/await) for iOS 15+ and tvOS 15+ while maintaining compatibility with earlier versions, and includes updated UI tests to verify the new navigation and functionality.
performance/Shared · high confidence
Performance quickstart now uses SwiftUI and includes mock configuration
The Performance Monitoring quickstart for iOS has been replaced with a SwiftUI-based implementation, moving away from the previous Storyboard approach. To support this new structure and facilitate local development without requiring real Firebase credentials, a mock GoogleService-Info.plist has been added to the project. The update also includes updated documentation and design outlines to reflect the new SwiftUI architecture and multi-platform (iOS/tvOS) capabilities.
performance · high confidence
Redesigned Live Session UI with new interactive components
The Live feature's user interface has been updated with new SwiftUI views to improve the session experience. A new AudioOutputToggle allows users to enable audio playback testing in the simulator, accompanied by a helper text. The ConnectButton now features a dynamic, animated gradient border that changes color based on the connection state (idle, connecting, or connected). The ModelAvatar displays the Gemini logo with a rotating color mask when connected. Additionally, the TranscriptView now automatically scrolls to the bottom as new text is generated.
firebaseai/FirebaseAIExample/Features/Live/Views · high confidence
Replaced main storyboard with a fresh iOS view controller layout
The main interface file for the iOS authentication example has been replaced with a new, minimal Main.storyboard. This change introduces a clean starting point featuring a single View Controller with standard iOS 11+ safe area layout guides, removing any previous complex UI definitions or legacy constraints that may have caused layout issues.
authentication/AuthenticationExample/Base.lproj · high confidence
SwiftUI Firestore sample introduces ViewModel-based real-time data and filtering
The Firestore SwiftUI quickstart now uses a ViewModel architecture to manage data flow. RestaurantListViewModel handles real-time subscription to the 'restaurants' collection, supporting filtering by category, city, and price, as well as sorting by various fields. RestaurantViewModel manages individual restaurant details, including real-time review subscriptions and atomic transactions for adding reviews and updating aggregate ratings. Helper extensions provide seed data population and static metadata (cities, categories, image URLs) to support the UI.
firestore/FirestoreSwiftUIExample/ViewModels · high confidence
Updated Xcode scheme for DatabaseExample
The Xcode project scheme for the DatabaseExample app has been updated to version 1.3 with a last upgrade version of 1610. This change configures the build, test, launch, profile, analyze, and archive actions to target the DatabaseExample.app and its associated UITests bundle, ensuring the project is correctly set up for modern Xcode versions and CI integration.
database/DatabaseExample.xcodeproj/xcshareddata · high confidence
Updated analytics quickstart for Google Analytics for Firebase with macOS and tvOS support
The analytics quickstart has been updated to reflect the rebranding to Google Analytics for Firebase and now includes sample applications for macOS and tvOS in addition to the existing iOS/iPadOS versions. The macOS sample utilizes SwiftUI and includes specific entitlements for app sandboxing and keychain access, while the documentation has been revised to guide users through setup for all supported platforms.
analytics · high confidence
Updated iOS messaging example to use modern Firebase and UNUserNotificationCenter APIs
The MessagingExample iOS app has been updated to use the current Firebase Messaging SDK patterns. The AppDelegate now initializes Firebase via FirebaseApp.configure() and registers for remote notifications using the modern UNUserNotificationCenter API (introduced in iOS 10) instead of legacy methods. It also implements the MessagingDelegate protocol to handle FCM token refreshes and properly exports delivery metrics to BigQuery. The ViewController demonstrates how to log the current FCM token and subscribe to topics using the updated SDK interfaces.
messaging/MessagingExample · high confidence
iOS Database Quickstart UI overhaul with sign-in and new post flows
The iOS Database Example app's user interface has been significantly updated to support a complete authentication and content creation workflow. The Main.storyboard now includes a dedicated Sign In scene with email and password fields for user authentication, replacing the previous simpler layout. Additionally, a New Post view controller has been added, featuring a scrollable interface with a title text field, a body text view, and a post button, enabling users to create and submit new database entries directly from the app.
database/DatabaseExample/Base.lproj · high confidence
iOS authentication sample now uses SceneDelegate for URL handling
The iOS authentication quickstart has been updated to use the modern SceneDelegate lifecycle instead of AppDelegate for handling incoming URLs. This change ensures that authentication flows, including reCAPTCHA verification and dynamic links, work correctly even when method swizzling is disabled, by explicitly routing URL contexts through the scene delegate to Firebase Auth.
authentication/AuthenticationExample · high confidence
Fixes
Added Xcode scheme for InAppMessagingExample
The InAppMessagingExample project now includes a shared Xcode scheme file that defines build, test, launch, profile, analyze, and archive actions. This enables developers to run, debug, and test the example application directly from Xcode without manual configuration.
inappmessaging/InAppMessagingExample.xcodeproj/xcshareddata · high confidence
Test coverage
Added Firestore UI test suite for the Friendly Eats sample app; Added UI tests for the Config Example quickstart; Added UI tests for the Database Example app; Added build verification test for AnalyticsExample; Added iOS installation example test target; Added initial test suite for AuthenticationExample; Added initial test suite for ConfigExample; Added macOS build verification test; Added unit and UI test scaffolding for the App Distribution example app; New test utilities for Google Sign-In UI automation.
Dependencies
Add xcodeproj dependency for Xcode project manipulation
The project now includes the \xcodeproj\ gem (version 1.27.0) as a direct dependency, enabling programmatic interaction with Xcode project files. This addition is accompanied by the creation of a \Gemfile\ and a \Gemfile.lock\ to manage Ruby dependencies, with the lock file also capturing transitive dependencies such as \rexml\ (3.4.4) and \CFPropertyList\ (3.0.9).
(dependencies) · high confidence
Housekeeping
Added mock configuration and documentation for the iOS Messaging quickstart
The messaging quickstart now includes a mock GoogleService-Info.plist file containing placeholder identifiers (e.g., mockproject-1234) and a new README.md that documents setup steps, including the requirement for APS Environment Entitlements in Xcode 8 and the need for Swift 3.0.
messaging · 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
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 55 → 53 (-2.3)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 97 → 96 (-0.7)
- Architecture 94 → 95 (+1.6)
- Maturity 58 → 58 (-0.1)
- Readiness 49 → 43 (-6.2)
- Security 71 → 80 (+9.4)
- Accessibility 49 → 49 (+0.0)
Resolved (3)
- Documentation: no licence statement (analytics/README.md)
- Off-boarding risk: anonymized user #1
- Off-boarding risk: anonymized user #2
New (21)
- Change coupling: AccountLinkingViewController.swift ↔ AuthViewController.swift (authentication/AuthenticationExample/ViewControllers/AccountLinkingViewController.swift)
- ClassifyView.body (cognitive 17) (performance/Shared/Views/ClassifyView.swift)
- Duplicated block (11 lines × 4) (firebaseai/FirebaseAIExample/Features/Chat/Screens/ChatScreen.swift)
- Duplicated block (14 lines × 3) (firebaseai/FirebaseAIExample/Features/GenerativeAIText/Screens/GenerateContentFromTemplateScreen.swift)
- Duplicated block (16 lines × 2) (firestore/FirestoreExample/RestaurantsTableViewController.swift)
- Duplicated block (16 lines × 3) (firebaseai/FirebaseAIExample/Features/GenerativeAIText/Screens/GenerateContentFromTemplateScreen.swift)
- Duplicated block (16–18 lines × 2) (firestore/FirestoreExample/RestaurantsTableViewController.swift)
- Duplicated block (17 lines × 2) (firebaseai/FirebaseAIExample/Features/GenerativeAIText/Screens/GenerateContentFromTemplateScreen.swift)
- Duplicated block (22 lines × 2) (database/DatabaseExampleSwiftUI/DatabaseExample/Shared/Views/LoginView.swift)
- Duplicated block (23 lines × 2) (database/DatabaseExampleSwiftUI/DatabaseExample/Shared/Views/LoginView.swift)
- Duplicated block (29 lines × 3) (firebaseai/FirebaseAIExample/Features/Chat/Screens/ChatScreen.swift)
- Duplicated block (43 lines × 2) (firebaseai/FirebaseAIExample/Features/NanoBanana/NanoBananaFromTemplateScreen.swift)
- Duplicated block (58 lines × 2) (database/DatabaseExampleSwiftUI/DatabaseExample/Shared/Views/LoginView.swift)
- Duplicated block (8 lines × 2) (firestore/FirestoreExample/RestaurantsTableViewController.swift)
- Medium: security finding (details withheld)
- Members sharing a duplicated core (4 members, 50+ identical tokens) (firebaseai/FirebaseAIExample/Features/Chat/Screens/ChatScreen.swift)
- MessageContentView.body (cognitive 16) (firebaseai/FirebaseAIExample/Features/Chat/Views/MessageView.swift)
- Near-duplicate member pair (103 shared lines) (database/DatabaseExampleSwiftUI/DatabaseExample/Shared/Views/LoginView.swift)
- Near-duplicate member pair (40 shared lines) (firestore/FirestoreExample/RestaurantsTableViewController.swift)
- Off-boarding risk: anonymized user #1
- …and 1 more
Changes since last survey
- 3 commits — 3 feature/other, 0 fixes
By area
- .github/workflows — 1 commit
- authentication/AuthenticationExample — 1 commit
- database/DatabaseExample.xcodeproj — 1 commit
Notable commits
- change: build(database): bump FirebaseUI-iOS minimum version to 16.0.0 (#1872)
- change: feat(auth): make GoogleSignIn an optional dependency (#1874)
- change: refactor(ai): update Tool to GenerativeModel.Tool (#1873)
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/quickstart-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 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 087e4f426baf5eddc61b8589fa3bf2462e710777 — 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-cb25ca4feafa.