iOS UI bindings for Firebase.
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 simplifies Firebase authentication by providing easy to use auth methods that integrate with common identity providers like Facebook, Twitter, and Google as well as allowing developers to use a built in headful UI for ease of development.
FirebaseUI clients are also available for Android and web.
FirebaseUI supports iOS 10.0+ and Xcode 11+. We recommend using CocoaPods, add
the following to your Podfile
:
pod 'FirebaseUI', '~> 8.0' # Pull in all Firebase UI features
If you don’t want to use all of FirebaseUI, there are multiple subspecs which can selectively install subsets of the full feature set:
# Only pull in Firestore features
pod 'FirebaseUI/Firestore'
# Only pull in Database features
pod 'FirebaseUI/Database'
# Only pull in Storage features
pod 'FirebaseUI/Storage'
# Only pull in Auth features
pod 'FirebaseUI/Auth'
# Only pull in Facebook login features
pod 'FirebaseUI/Facebook'
# Only pull in Google login features
pod 'FirebaseUI/Google'
# Only pull in Phone Auth login features
pod 'FirebaseUI/Phone'
If you’re including FirebaseUI in a Swift project, make sure you also have:
platform :ios, '13.0'
use_frameworks!
Otherwise, you can include the FirebaseUI Xcode project from this repo in
your project. You also need to
add the Firebase framework
to your project.
The READMEs for components of FirebaseUI can be found in their respective
project folders.
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
$ cd Auth # or PhoneAuth, Database, etc
$ pod install
Alternatively you can use pod try FirebaseUI
to install the Objective-C or Swift sample projects.
You’ll have to configure your Xcode project in order to run the samples.
Your Xcode project should contain a GoogleService-Info.plist
, downloaded from Firebase console when you add your app to a Firebase project.
Copy the GoogleService-Info.plist
into the sample project folder (samples/obj-c/GoogleService-Info.plist
or samples/swift/GoogleService-Info.plist
).
Update URL Types.
Go to Project Settings -> Info tab -> Url Types
and update values for:
REVERSED_CLIENT_ID
(get value from GoogleService-Info.plist
)fb{your-app-id}
(put Facebook App Id)Update Info.plist
with Facebook configuration values
FacebookAppID -> {your-app-id}
(put Facebook App Id)Enable Keychain Sharing.
Facebook SDK requires keychain sharing.
This can be done here: Project Settings -> Capabilities -> KeyChain Sharing -> ON
Don’t forget to configure your Firebase App Database using Firebase console.
Database should contain appropriate read/write permissions and folders (objc_demo-chat
and swift_demo-chat
respectively)
In Order to use Phone Auth
provider you should Configure Push Notifications
Push Notification
- Under Capabilities
tab in your app target choose Push Notifications
and put the switch to the On
position.Background Mode
- Under Capabilities
tab in your app target choose Background Modes
put the switch to the On
position. In the list of available modes select Background fetch
and Remote notifications
(If available).Create your Provisioning APNS SSL Certificates
by following the steps on the following link.
https://firebase.google.com/docs/cloud-messaging/ios/certs
Upload your APNS Certificate
to Firebase:
Project Settings
, and then select the Cloud Messaging
tab.Upload Certificate
button for your development certificate, your production certificate, or both. At least one is required..p12 file
, and provide the password, if any. Make sure the bundle ID
for this certificate matches the bundle ID
of your app. Select Save
.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).
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.