在一个品味/目标中使用多个google-services.json和GoogleService-Info.plist文件

7

在Android项目中是否可以使用两个google-services.json文件?我知道可以为多个风味使用多个google-services.json文件,但是否可能合并具有不同project_info的两个文件,并同时在一个项目中使用它们?

下面是我想在一个项目和一个风味中使用的两个文件的示例(一个用于Analytics,另一个用于Ads)。

第一个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文件也有同样的疑问。


你看过这篇帖子吗? - Alex Mamo
为什么同一个项目的项目编号和项目ID会有不同的值? - AlexTa
@AlexMamo 是的。但是正如我所写的,我想在一个口味中使用多个google-services.json文件。 - fragon
@AlexTa 因为不同的方面在管理应用程序的分析和Firebase广告。 - fragon
1个回答

2
是的,可以使用多个FirebaseApp。但是您必须通过代码使用FirebaseApp配置来进行第二个配置。google-services.json和GoogleService-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)

添加来自 google-services.jsonGoogleService-Info.plist 文件的FirebaseOptions 数据/值。
请参考下面的链接获取更多详细信息:
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 Android: https://firebase.google.com/docs/reference/android/com/google/firebase/FirebaseApp#initializeApp(android.content.Context,%20com.google.firebase.FirebaseOptions,%20java.lang.String)

那Flutter的包怎么样?其实这就是我在寻找的。你有什么想法吗? - Gustavo Lopes
1
@GustavoLopes 是的,可以查看这个文档:https://pub.dev/documentation/firebase_core/latest/firebase_core/Firebase/initializeApp.html(使用`FirebaseOptions`和名称)https://pub.dev/documentation/firebase_core_platform_interface/latest/firebase_core_platform_interface/FirebaseOptions-class.html - Datt Patel
1
太完美了!!最终,问题出在flutter库上。但是你的解决方案让我意识到了这一点,我可以fork并更新库以满足我的需求。谢谢你,你真的很有帮助! - Gustavo Lopes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接