mirror of
https://github.com/firebase/firebase-ios-sdk
synced 2026-11-09 22:36:01 +05:45
80 lines
4.4 KiB
Markdown
80 lines
4.4 KiB
Markdown
# Firebase Options Usage By Product
|
|
|
|
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** | | | | | | | | | | | | | | | | | ✅ |
|
|
|
|
|
|
## Rows (FirebaseOptions)
|
|
See [FIROptions.m](https://github.com/firebase/firebase-ios-sdk/blob/main/FirebaseCore/Sources/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
|
|
|
|
## 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?
|
|
* 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*.
|
|
|
|
## Unused FirebaseOptions
|
|
Proposal: Deprecate these in the SDK and stop generating them for GoogleService-Info.plist.
|
|
|
|
* *androidClientID*
|
|
* *trackingID*
|
|
|
|
## Unread GoogleService-Info.plist fields
|
|
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](https://www.apple.com/DTDs/PropertyList-1.0.dtd).
|
|
* 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
|