mirror of
https://github.com/firebase/firebase-ios-sdk
synced 2026-11-10 22:45:59 +05:45
55 lines
2.7 KiB
Markdown
55 lines
2.7 KiB
Markdown
# Remote Config Console API
|
|
|
|
[`RemoteConfigConsole.swift`](https://github.com/firebase/firebase-ios-sdk/blob/master/FirebaseRemoteConfig/Tests/SwiftAPI/RemoteConfigConsole.swift)
|
|
provides a simple API for interacting with an app's Remote Config on the
|
|
Firebase console.
|
|
|
|
## Local Development Setup
|
|
1. Create a Firebase project on the Firebase Console and download
|
|
the `GoogleService-Info.plist`.
|
|
2. Navigate to your project's settings. Click on the **Service accounts** tab and
|
|
then download a private key by clicking the blue button that says "Generate new private key".
|
|
Rename it `ServiceAccount.json`.
|
|
3. Within the `firebase-ios-sdk`, run:
|
|
```bash
|
|
./scripts/generate_access_token.sh local_dev PATH/TO/ServiceAccount.json FirebaseRemoteConfig/Tests/SwiftAPI/AccessToken.json
|
|
```
|
|
4. Generate the `FirebaseRemoteConfig` project:
|
|
```bash
|
|
pod gen FirebaseRemoteConfig.podspec --local-sources=./ --auto-open --platforms=ios
|
|
```
|
|
5. Copy the `GoogleService-Info.plist` you downloaded earlier into the generated
|
|
Xcode project.
|
|
|
|
🚀 Everything is ready to go! Run the tests in the `swift-api-tests` target.
|
|
|
|
|
|
## How it works
|
|
|
|
While the `RemoteConfigConsole` API basically just makes simple network calls,
|
|
we need to include an `access token` so our requests do the proper "handshake" with the Firebase console.
|
|
|
|
### Firebase Service Account Private Key
|
|
This private key is needed to create an access token with the valid parameters
|
|
that authorizes our requests to programmatically make changes to remote config on the Firebase console.
|
|
|
|
The private key can be located on the Firebase console and navigate to your project's settings. To download,
|
|
click on the **Service accounts** tab and then generate the private key by clicking
|
|
the blue button that says "Generate new private key".
|
|
|
|
### Create the Access Token
|
|
We use Google's [Auth Library for Swift](https://github.com/googleapis/google-auth-library-swift)
|
|
to generate the access token. There are a few example use cases provided. We use the
|
|
[`TokenSource`](https://github.com/googleapis/google-auth-library-swift/blob/master/Sources/Examples/TokenSource/main.swift)
|
|
example.
|
|
|
|
For the access token to be generated, the `GOOGLE_APPLICATION_CREDENTIALS` env var should be set to point to where the
|
|
Firebase project's service account key is stored. This is set in the
|
|
[`generate_access_token.sh`](https://github.com/firebase/firebase-ios-sdk/blob/master/scripts/generate_access_token.sh)
|
|
script.
|
|
|
|
### Remote Config API Tests
|
|
There is a [section](https://github.com/firebase/firebase-ios-sdk/blob/master/FirebaseRemoteConfig/Tests/SwiftAPI/APITests.swift#L210)
|
|
of tests in [`APITests.swift`](https://github.com/firebase/firebase-ios-sdk/blob/master/FirebaseRemoteConfig/Tests/SwiftAPI/APITests.swift)
|
|
showcasing the `RemoteConfigConsole` in action.
|