在一个flavor / target中使用多个google-services.json和GoogleService-Info.plist文件

时间:2017-05-19 07:36:46

标签: android ios firebase google-analytics firebase-realtime-database

是否可以在Android项目中使用两个google-services.json文件?我知道有可能将多个google-services.json文件用于多种口味,但有可能以某种方式合并两个不同project_info的文件并同时将它们用于项目吗?

以下是我想在一个项目中使用的两个文件的示例和一个风格(一个用于Google Analytics,另一个用于广告)。

首先google-services.json

{
  "project_info": {
    "project_number": "XXXXXXXXXXXX",
    "project_id": "project-one"
  },
  "client": [
    (...)
  ],
  "configuration_version": "1"
}

第二个google-services.json

{
  "project_info": {
    "project_number": "YYYYYYYYYYYY",
    "firebase_url": "https://project-two.firebaseio.com",
    "project_id": "project-two",
    "storage_bucket": "project-two.appspot.com"
  },
  "client": [
    (...)
  ],
  "configuration_version": "1"
}

此外,我对iOS项目的GoogleService-Info.plist文件也有同样的疑问。

2 个答案:

答案 0 :(得分:1)

是的,可以使用多个 FirebaseApp。但是您必须通过代码使用 FirebaseApp 配置进行第二个配置。 google-services.jsonGoogleService-Info.plist 用于创建默认 FirebaseApp。对于第二个配置,使用 class func configure(name: String, options: FIROptions)(Swift) & public static FirebaseApp initializeApp (Context context, FirebaseOptions options, String name)(Android)。

iOS 演示代码:-

   let options =  FirebaseOptions(googleAppID: "1:XXXXXXXXXXXXXX:ios:XXXXXXXXXXXXXXXXXX", gcmSenderID: "XXXXXXXXXXXXX")
   options.apiKey = "XXXXXXXXXXXXXXXXXXXXXXXXX"
   options.projectID = "App-XXXXX"
   FirebaseApp.configure(name: "AppAnalytics", options: options)

FirebaseOptionsgoogle-services.json 文件添加 GoogleService-Info.plist 数据/值。

详情请参考以下链接:

iOS: https://firebase.google.com/docs/reference/swift/firebasecore/api/reference/Classes/FirebaseApp https://firebase.google.com/docs/reference/swift/firebasecore/api/reference/Classes/FirebaseOptions

安卓: https://firebase.google.com/docs/reference/android/com/google/firebase/FirebaseApp#initializeApp(android.content.Context,%20com.google.firebase.FirebaseOptions,%20java.lang.String)

答案 1 :(得分:0)

是的,这是可能的,

安卓:

将文件保存在不同的flavor目录中(如果不存在请创建目录) IE。在普通项目中,您将拥有 app>src>main,因此与其在该目录中保存 google-services.json 不同的文件,不如将其保存在

  • app>src>flavor1
  • app>src>flavor2

iOS:

您可以通过使用构建脚本为 iOS 实现类似的行为,请查看此答案以了解详细信息:https://stackoverflow.com/a/48789232/8334146