Back to Firebase Ios Sdk

Firebase Options Usage By Product

docs/FirebaseOptionsPerProduct.md

12.12.13.8 KB
Original Source

Firebase Options Usage By Product

Summarize which Firebase Options fields (and GoogleService-Info.plist attributes) are used by which Firebase products.

AnApCApDAutCorCrsDBDLFstFnIAMInsMsgMLMPrfRCStr
apiKey
bundleID
clientID
gcmSenderID
projectID
googleAppID
databaseURL
storageBucket

Rows (FirebaseOptions)

See FIROptions.m to see how the variables map to GoogleService-Info.plist attributes.

  • apiKey: An API key used for authenticating requests from your Apple app
  • bundleID: The bundle ID for the application (Not used by the SDK)
  • clientID: The OAuth2 client ID for Apple applications used to authenticate Google users
  • gcmSenderID: The Project Number from the Google Developer's console used to configure Google Cloud Messaging
  • projectID: The Project ID from the Firebase console
  • googleAppID: The Google App ID that is used to uniquely identify an instance of an app
  • databaseURL: The realtime database root URL
  • storageBucket: The Google Cloud Storage bucket name

Questions

  • apiKey, projectID, gcmSenderID, projectID, and googleAppID seem to have overlapping functionality. Can they be consolidated?
  • gcmSenderID is the second subfield of googleAppID. Can it be eliminated?
  • bundleID seems to have three purposes: Performance SDK uses it. Messaging back end uses it. Core will generate an error message if it doesn't match the actual bundleID. Anything else?
  • Is there a better way to manage the fields that are only used by one product? clientID, databaseURL, and storageBucket.

Unread GoogleService-Info.plist fields

Proposal: Stop generating these for GoogleService-Info.plist.

  • PLIST_VERSION
  • IS_ADS_ENABLED
  • IS_ANALYTICS_ENABLED
  • IS_APPINVITE_ENABLED
  • IS_GCM_ENABLED
  • IS_SIGNIN_ENABLED

Columns (Firebase Products)

  • An - Analytics
  • ApC - App Check
  • ApD - App Distribution
  • Aut - Auth
  • Cor - Core
  • Crs - Crashlytics
  • DB - Real-time Database
  • DL - Dynamic Links
  • Fst - Firestore
  • Fn - Functions
  • IAM - In App Messaging
  • Ins - Installations
  • Msg - Messaging
  • MLM - MLModel Downloader
  • Prf - Performance
  • RC - Remote Config
  • Str - Storage