GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - firebase/FirebaseUI-iOS: iOS UI bindings for Firebase.

BranchesTags
Open more actions menu

Latest commit

 

History

3,047 Commits
3,047 Commits

Folders and files

NameName
Last commit message
Last commit date
.agents/skills/firebaseui-ios-getting-started
.agents/skills/firebaseui-ios-getting-started
 
 
.github
.github
 
 
.opensource
.opensource
 
 
FirebaseDatabaseUI
FirebaseDatabaseUI
 
 
FirebaseFirestoreUI
FirebaseFirestoreUI
 
 
FirebaseStorageUI
FirebaseStorageUI
 
 
FirebaseSwiftUI
FirebaseSwiftUI
 
 
e2eTest/FirebaseSwiftUIExample
e2eTest/FirebaseSwiftUIExample
 
 
okf-bundle
okf-bundle
 
 
samples
samples
 
 
.clang-format
.clang-format
 
 
.gitignore
.gitignore
 
 
.swiftformat
.swiftformat
 
 
AGENTS.md
AGENTS.md
 
 
AUTHORS
AUTHORS
 
 
CLAUDE.md
CLAUDE.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
CONTRIBUTORS
CONTRIBUTORS
 
 
FirebaseDatabaseUI.podspec
FirebaseDatabaseUI.podspec
 
 
FirebaseFirestoreUI.podspec
FirebaseFirestoreUI.podspec
 
 
FirebaseStorageUI.podspec
FirebaseStorageUI.podspec
 
 
FirebaseUI.h
FirebaseUI.h
 
 
FirebaseUI.podspec
FirebaseUI.podspec
 
 
GETTING_STARTED.md
GETTING_STARTED.md
 
 
Gemfile
Gemfile
 
 
Gemfile.lock
Gemfile.lock
 
 
ISSUE_TEMPLATE.md
ISSUE_TEMPLATE.md
 
 
LICENSE
LICENSE
 
 
PULL_REQUEST_TEMPLATE.md
PULL_REQUEST_TEMPLATE.md
 
 
Package.resolved
Package.resolved
 
 
Package.swift
Package.swift
 
 
README.md
README.md
 
 
format-swift.sh
format-swift.sh
 
 
lint-swift.sh
lint-swift.sh
 
 
local_test.sh
local_test.sh
 
 
release-swift.sh
release-swift.sh
 
 
swiftui-tests.sh
swiftui-tests.sh
 
 
test.sh
test.sh
 
 

Repository files navigation

FirebaseUI for iOS — UI Bindings for Firebase

Database Firestore Storage SwiftUI Auth Samples

FirebaseUI is an open-source library for iOS that allows you to quickly connect common UI elements to the Firebase database for data storage, allowing views to be updated in realtime as they change, and providing simple interfaces for common tasks like displaying lists or collections of items.

Additionally, FirebaseUI provides modern SwiftUI authentication components that simplify Firebase authentication by integrating with common identity providers like Facebook, Twitter, Google, and Apple.

FirebaseUI clients are also available for Android and web.

Installing FirebaseUI for iOS

FirebaseUI supports iOS 17.0+ and Xcode 15+.

Swift Package Manager (Recommended)

For SwiftUI authentication and modern features, use Swift Package Manager:

  1. In Xcode, go to File > Add Package Dependencies
  2. Enter the repository URL: https://github.com/firebase/FirebaseUI-iOS
  3. Select the modules you need:
    • FirebaseAuthSwiftUI - Core SwiftUI authentication
    • FirebaseGoogleSwiftUI - Google Sign-In
    • FirebaseFacebookSwiftUI - Facebook Login
    • FirebasePhoneAuthSwiftUI - Phone Authentication
    • FirebaseAppleSwiftUI - Sign in with Apple
    • FirebaseTwitterSwiftUI - Twitter Login
    • FirebaseOAuthSwiftUI - Generic OAuth providers

CocoaPods

For UIKit data binding features (Database, Firestore, Storage), use CocoaPods:

# Only pull in Firestore features
pod 'FirebaseUI/Firestore'

# Only pull in Database features
pod 'FirebaseUI/Database'

# Only pull in Storage features
pod 'FirebaseUI/Storage'

If you're including FirebaseUI in a project, make sure you also have:

platform :ios, '13.0'
use_frameworks!

Documentation

The READMEs for components of FirebaseUI can be found in their respective project folders.

SwiftUI Components

  • SwiftUI Authentication

UIKit Data Binding Components

  • Database
  • Firestore
  • Storage

Local Setup

If you'd like to contribute to FirebaseUI for iOS, you'll need to run the following commands to get your environment set up:

$ git clone https://github.com/firebase/FirebaseUI-iOS.git
$ cd FirebaseUI-iOS

# For SwiftUI components (uses Swift Package Manager)
$ cd samples/swiftui/FirebaseSwiftUISample
$ open FirebaseSwiftUISample.xcodeproj

# For UIKit data binding components (uses CocoaPods)
$ cd FirebaseDatabaseUI # or FirebaseFirestoreUI, FirebaseStorageUI
$ pod install

Sample Projects

FirebaseUI includes several sample projects demonstrating different features:

SwiftUI Authentication Sample

Located in samples/swiftui/FirebaseSwiftUISample/, this sample demonstrates the modern SwiftUI authentication components.

Configuration:

  1. Download GoogleService-Info.plist from Firebase Console
  2. Copy it to the sample project folder
  3. Update URL Types (for OAuth providers) in Project Settings -> Info tab -> Url Types:
    • REVERSED_CLIENT_ID (from GoogleService-Info.plist) - Required for Google Sign-In
    • fb{your-app-id} - Required for Facebook Login
  4. For Facebook Login, update Info.plist with FacebookAppID and enable Keychain Sharing

UIKit Database & Storage Samples

Located in samples/objc/ and samples/swift/, these samples demonstrate FirebaseUI's data binding capabilities for Realtime Database and Storage.

Configuration:

  1. Download GoogleService-Info.plist from Firebase Console
  2. Copy it to samples/objc/GoogleService-Info.plist or samples/swift/GoogleService-Info.plist
  3. Run pod install in the sample directory
  4. Configure your Firebase Database and Storage in the Firebase Console
  5. For the Chat sample, enable anonymous authentication in Firebase Console
  6. For the Storage sample, configure appropriate Storage Security Rules

Contributing to FirebaseUI

Contributor License Agreements

We'd love to accept your sample apps and patches! Before we can take them, we have to jump a couple of legal hurdles.

Please fill out either the individual or corporate Contributor License Agreement (CLA).

  • If you are an individual writing original source code and you're sure you own the intellectual property, then you'll need to sign an [individual CLA] (https://developers.google.com/open-source/cla/individual).
  • If you work for a company that wants to allow you to contribute your work, then you'll need to sign a [corporate CLA] (https://developers.google.com/open-source/cla/corporate).

Follow either of the two links above to access the appropriate CLA and instructions for how to sign and return it. Once we receive it, we'll be able to accept your pull requests.

Contribution Process

  1. Submit an issue describing your proposed change to the repo in question.
  2. The repo owner will respond to your issue promptly.
  3. If your proposed change is accepted, and you haven't already done so, sign a Contributor License Agreement (see details above).
  4. Fork the desired repo, develop and test your code changes.
  5. Ensure that your code adheres to the existing style of the library to which you are contributing.
  6. Ensure that your code has an appropriate set of unit tests which all pass.
  7. Submit a pull request

About

iOS UI bindings for Firebase.

Topics

firebaseios

Resources

Readme
Apache-2.0 license

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

1.6k stars

Watchers

150 watching

Forks

497 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.