As you're developing your iOS app using Firebase, you might discover concepts that are unfamiliar or specific to Firebase. This page aims to answer those questions or point you to resources to learn more.
If you have questions about a topic not covered on this page, feel free to visit one of our online communities. We'll also update this page with new topics periodically, so check back to see if we've added the topic you want to learn about!
Firebase library support by platform
The following table describes which Firebase libraries are compatible with which Apple platforms. For the time being, all non-iOS Apple platforms are community-supported only. See the Firebase iOS SDK GitHub repository for installation instructions and known issues.
Library | iOS | macOS | Mac Catalyst |
tvOS | watchOS |
---|---|---|---|---|---|
A/B Testing | |||||
Analytics | |||||
App Distribution | |||||
Authentication | |||||
Cloud Firestore | |||||
Cloud Functions | |||||
Cloud Messaging | |||||
Cloud Storage | |||||
Crashlytics | |||||
Dynamic Links | |||||
Firebase installations | |||||
Firebase ML Model Downloader | |||||
In-App Messaging | |||||
Performance Monitoring | |||||
Realtime Database | |||||
Remote Config |
App Clips
Most Firebase libraries will build and run in an App Clip target, however, many are restricted as a result of underlying OS restrictions. Known issues include:
- Dynamic Links cannot send users to an App Clip if they tap a link without the app installed.
- Firestore and Realtime Database cannot load data in App Clips due to an underlying CFStream dependency.
See the Firebase GitHub repository for a full list of known App Clip issues.
GoogleService-Info.plist
As part of adding Firebase to your iOS project, you need to add the
GoogleService-Info.plist
configuration file to your project. If you want to
use multiple Firebase projects in a single app, visit the documentation for
configuring multiple projects.
See the iOS reference documentation to learn about the Firebase app initialization process in more detail.
Swift Package Manager
Swift Package Manager support is currently in beta. Learn more in the Firebase iOS SDK repository.
Swift Extensions
Firebase iOS SDK Swift extensions are small, open-source add-ons to the existing Firebase iOS libraries that enable your code to use Swift language-specific features.
With CocoaPods, to install a Swift extension, include it in your Podfile as shown below. With Swift Package Manager, import the desired Swift extension libraries directly from the same repository as the Firebase iOS SDK.
# An explicit version is required.
pod 'FirebaseFirestoreSwift', '7.8.0-beta'
pod 'FirebaseStorageSwift', '7.8.0-beta'
Including the base Objective-C SDKs is handled automatically by CocoaPods or Swift Package Manager, so they don't need to be explicitly specified.
SwiftUI
Firebase fully supports SwiftUI, though the setup will be slightly different from UIKit apps in order for Firebase to function correctly in a fully SwiftUI environment. Take a look at this blog post by Peter Friese for more details.
Supporting iOS 14
iOS 14 includes new changes to user permissions surrounding the user's advertising identifier. See the preparing for iOS 14 guide for more details on whether or not your app may be affected.
Open source resources for Firebase iOS SDKs
Firebase supports open source development, and we encourage community contributions and feedback.
Firebase iOS SDKs
All Firebase iOS SDKs except Analytics are developed as open source libraries in our public Firebase GitHub repository.
FirebaseUI
FirebaseUI is a set of utility libraries built on Firebase, including a drop-in UI flow for authentication and data utilities for Cloud Firestore and Realtime Database. See more details about FirebaseUI on our GitHub page.
Quickstart samples
Firebase maintains a collection of quickstart samples for most Firebase APIs on iOS. Find these quickstarts in our public Firebase GitHub quickstart repository.
You can open each quickstart in Xcode, then run them on a mobile device or simulator. Or you can use these quickstarts as example code for using Firebase SDKs.