我已实施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
答案 0 :(得分:1)
Firebase SDK需要具有&#34;默认&#34;通过google-services.json
完成后,您可以使用FirebaseInstanceId.getInstance(context).getToken(...)
但请注意,最新的FCM功能(自动重试注册,主题订阅)仅适用于默认项目。
答案 1 :(得分:1)
事实证明,您需要使用google-services.json进行FCM,并处理多个构建变体情况,
当应用构建时,根据构建变体,它会在相应的文件夹中查找google-services.json,并从中获取项目详细信息。
可在此主题中找到更多详细信息 google services issues 54
感谢Arthur Thompson
答案 2 :(得分:0)
您是否检查过以确保将FIREBASE_URL设置为正确的字符串?你还确保有适当的应用程序设置配置吗?
上次发生这种情况时,我需要设置我的Android App配置。 https://support.google.com/firebase/answer/7015592
之后,您可以按照此设置进行操作。 https://firebase.google.com/docs/cloud-messaging/android/client
答案 3 :(得分:0)
请仔细检查,您已添加
申请插件:'com.google.gms.google-services' 在应用程序的gradle文件的底部,然后清理并重建项目