Summarize which Firebase Options fields (and GoogleService-Info.plist attributes) are used by which Firebase products.
An | ApC | ApD | Aut | Cor | Crs | DB | DL | Fst | Fn | IAM | Ins | Msg | MLM | Prf | RC | Str | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apiKey | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||
bundleID | ✅ | ✅ | |||||||||||||||
clientID | ✅ | ||||||||||||||||
gcmSenderID | ✅ | ✅ | ✅ | ✅ | |||||||||||||
projectID | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||||
googleAppID | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||
databaseURL | ✅ | ||||||||||||||||
deepLinkURLScheme | ✅ | ||||||||||||||||
storageBucket | ✅ |
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
- deepLinkURLScheme: The URL scheme used to set up Durable Deep Link service
- storageBucket: The Google Cloud Storage bucket name
- 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?
- Why isn't deepLinkURLScheme set from the GoogleService-Info.plist field
REVERSED_CLIENT_ID
like other Firebase Options? The client code is required to explicitly set it. - Is there a better way to manage the fields that are only used by one product? clientID, databaseURL, deepLinkURLScheme, and storageBucket.
Proposal: Deprecate these in the SDK and stop generating them for GoogleService-Info.plist.
- androidClientID
- trackingID
Proposal: Stop generating these for GoogleService-Info.plist.
- PLIST_VERSION
- Note: This is different from the
<plist version="1.0">
declaration that is part of the Property List XML Schema.
- Note: This is different from the
- IS_ADS_ENABLED
- IS_ANALYTICS_ENABLED
- IS_APPINVITE_ENABLED
- IS_GCM_ENABLED
- IS_SIGNIN_ENABLED
- 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