iOS UI bindings for Firebase.
Objective-C Ruby Shell
Clone or download
morganchen12 Add firebaseopensource.com metadata
Change-Id: Idbadd97dd289ba69d4145d53c59a95b9836cbacf
Latest commit 573883e Aug 14, 2018
Permalink
Failed to load latest commit information.
.opensource Add firebaseopensource.com metadata Aug 14, 2018
FirebaseAuthUI Fix missing newline Aug 13, 2018
FirebaseAuthUITests Fix failing Auth tests May 18, 2018
FirebaseDatabaseUI Update pod version for 5.1.2 Jul 19, 2018
FirebaseDatabaseUITests Fix bad loop behavior on invalidation in FUIArray, add tests Jul 13, 2018
FirebaseFacebookAuthUI Automatic anonymous user upgrade (#481) Jul 17, 2018
FirebaseFacebookAuthUITests Merge branch 'master' of https://github.com/firebase/FirebaseUI-iOS Jun 3, 2017
FirebaseFirestoreUI Reload moved indexpaths in FirestoreUI Jul 25, 2018
FirebaseFirestoreUITests fix bug in firestore change detection Mar 14, 2018
FirebaseGoogleAuthUI Automatic anonymous user upgrade (#481) Jul 17, 2018
FirebaseGoogleAuthUITests make project compatible for non-module users Feb 1, 2018
FirebasePhoneAuthUI Fix docs issue and unselectable footer Aug 9, 2018
FirebasePhoneAuthUITests Fix failing Auth tests May 18, 2018
FirebaseStorageUI Update docs May 15, 2018
FirebaseStorageUITests use SDWebImage 4.0 and CocoaPods 1.2.0 Feb 1, 2017
FirebaseTwitterAuthUI update FirebaseUI to Firebase 5.0.0 Apr 25, 2018
FirebaseTwitterAuthUITests make project compatible for non-module users Feb 1, 2018
FirebaseUI.xcodeproj Update pod version for 5.1.2 Jul 19, 2018
FirebaseUI Fix module breakage Apr 26, 2018
FirebaseUISample Fix failing Auth tests May 18, 2018
FirebaseUISampleUITests Add UI tests for dismissing AuthPicker controller. Oct 25, 2017
samples add swift sample Podfile Aug 9, 2018
.clang-format Added a .clang-format file which conforms to the Google Obj-C style g… Aug 21, 2015
.gitignore checkin Podfile.lock for gardener Jul 25, 2018
.travis.yml Fix tests, disable UI tests temporarily Jul 10, 2018
AUTHORS Updating license, adding META Sep 3, 2015
CONTRIBUTING.md Update CONTRIBUTING.md Sep 12, 2016
CONTRIBUTORS update build files and docs for firebaeui ios Apr 5, 2016
FirebaseUI.podspec bump version to 5.2.0 Aug 9, 2018
Gemfile make project compatible for non-module users Feb 1, 2018
Gemfile.lock update Gemfile Jul 26, 2018
ISSUE_TEMPLATE.md Update issue and pull request templates Aug 4, 2016
LICENSE Updating license, adding META Sep 3, 2015
PULL_REQUEST_TEMPLATE.md Make pull request template imperative Aug 4, 2016
Podfile Fix failing Auth tests May 18, 2018
Podfile.lock Auto-update dependencies. Jul 27, 2018
README.md Fix docs issue and unselectable footer Aug 9, 2018
test.sh Fix tests, disable UI tests temporarily Jul 10, 2018

README.md

FirebaseUI for iOS — UI Bindings for Firebase Build Status

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.

Installing FirebaseUI for iOS

FirebaseUI supports iOS 8.0+. We recommend using CocoaPods, add the following to your Podfile:

pod 'FirebaseUI', '~> 5.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 FirebaseUI Firestore features
pod 'FirebaseUI/Firestore', '~> 5.0'

# Only pull in FirebaseUI Database features
pod 'FirebaseUI/Database', '~> 5.0'

# Only pull in FirebaseUI Storage features
pod 'FirebaseUI/Storage', '~> 5.0'

# Only pull in FirebaseUI Auth features
pod 'FirebaseUI/Auth', '~> 5.0'

# Only pull in Facebook login features
pod 'FirebaseUI/Facebook', '~> 5.0'

# Only pull in Google login features
pod 'FirebaseUI/Google', '~> 5.0'

# Only pull in Twitter login features
pod 'FirebaseUI/Twitter', '~> 5.0'

# Only pull in Phone Auth login features
pod 'FirebaseUI/Phone', '~> 5.0'

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

platform :ios, '9.0'
use_frameworks!

Otherwise, you can download the latest version of the FirebaseUI frameworks from the releases page or include the FirebaseUI Xcode project from this repo in your project. You also need to add the Firebase framework to your project.

Documentation

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

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
$ pod install

Alternatively you can use pod try FirebaseUI to install the Objective-C or Swift sample projects.

Sample Project Configuration

You'll have to configure your Xcode project in order to run the samples.

  1. 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).

  2. 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)
    • twitterkit-{consumer-key} (put Twitter App Consumer key)
  3. Update Info.plist with Facebook configuration values

    • FacebookAppID -> {your-app-id} (put Facebook App Id)
  4. Enable Keychain Sharing.
    Facebook SDK requires keychain sharing.
    This can be done here: Project Settings -> Capabilities -> KeyChain Sharing -> ON

  5. 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)

  6. In Order to use Phone Auth provider you should Configure Push Notifications

Configure Apple Push Notifications

Enable silent push notifications in Xcode
  • 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).
Upload APNS Certificate to Firebase
  1. Create your Provisioning APNS SSL Certificates by following the steps on the following link. https://firebase.google.com/docs/cloud-messaging/ios/certs

  2. Upload your APNS Certificate to Firebase:

    • Inside your project in the Firebase console, select the gear icon, select Project Settings, and then select the Cloud Messaging tab.
    • Select the Upload Certificate button for your development certificate, your production certificate, or both. At least one is required.
    • For each certificate, select the .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.

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).

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