如何在AppDelegate.swift中使用Firebase远程配置?

问题描述 投票:0回答:1

基于advice,我想使用Firebase Remote Config管理API密钥,以避免像google_maps_flutter那样对API密钥进行硬编码。它具有AppDelegate.swift,例如:

import UIKit
import Flutter
import GoogleMaps

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    GMSServices.provideAPIKey("YOUR KEY HERE")
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

如何修改以上内容以从Firebase远程配置中获取API密钥,然后将其传递给GMSServices

ios swift flutter firebase-remote-config
1个回答
0
投票

基于此article,我想出了:

import UIKit
import Firebase
import Flutter
import GoogleMaps
//import os.log

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    FirebaseApp.configure()
    RemoteConfig.remoteConfig().fetchAndActivate() { status, error in
      let apiKey : String = RemoteConfig.remoteConfig()["Google_Maps_SDK_for_iOS_API_KEY"].stringValue ?? "MISSING";
      // os_log("Google_Maps_SDK_for_iOS_API_KEY = '%@'", apiKey)
      GMSServices.provideAPIKey(apiKey)
    }
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

还有更好的方法吗?

© www.soinside.com 2019 - 2024. All rights reserved.