我已经实施了GCM,现在尝试将GCM导入FCM。我不想使用google-services.json,因为我想在不同的环境(Dev,Stag,Prod)中使用不同的google项目。

我试图通过下面的代码初始化应用程序

 FirebaseOptions.Builder options=new FirebaseOptions.Builder();
       options.setGcmSenderId("<<project id>>");
       options.setApplicationId("<<Project name>>");
       FirebaseApp firebaseApp = FirebaseApp.initializeApp(getApplicationContext(),options.build(),"MyTestFCM");
       String refreshedToken= FirebaseInstanceId.getInstance(firebaseApp).getToken();


我不断在Firebase App初始化上遇到异常

原因:java.lang.IllegalStateException:名称为[DEFAULT]的FirebaseApp不存在。可用的应用程序名称:MyTestFCM

如果我删除了应用程序名称,那么我不会获得令牌,那么当我重新运行应用程序时,我将获得令牌。我试图从Mainactivity和Application类执行以上代码。在两个地方,我得到相同的错误。

所以我的问题是如何在不使用google-services.json的情况下初始化Firebase应用程序

谢谢,
P

最佳答案

Firebase SDK要求通过google-services.json配置“默认”项目

一旦有了,就可以使用FirebaseInstanceId.getInstance(context).getToken(...)向其他发件人ID注册FCM sdk。

但是请注意,最新的FCM功能(自动重试注册,主题订阅)仅适用于默认项目。

10-04 23:09
查看更多