Android客户端FirebaseApp初始化错误
Android client FirebaseApp initialization error
我已经实施了 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 应用程序初始化异常
原因:java.lang.IllegalStateException:名称为 [DEFAULT] 的 FirebaseApp 不存在。可用的应用名称:MyTestFCM
如果我删除应用程序名称,则我不会取回令牌,然后当我重新运行 应用程序时,我会得到一个令牌。我试图从 Mainactivity 和 Application class 执行上面的代码。在这两个地方我都得到了同样的错误。
所以我的问题是如何在不使用 google-services.json
的情况下初始化 Firebase 应用程序
谢谢,
P
您是否检查过以确保将 FIREBASE_URL 设置为正确的字符串?另外,您是否确保拥有适当的应用设置配置?
上次发生这种情况时,我需要设置 Android 应用程序配置。
https://support.google.com/firebase/answer/7015592
之后,您可以按照此设置进行操作。
https://firebase.google.com/docs/cloud-messaging/android/client
Firebase SDK 需要通过 google-services.json
配置一个 "default" 项目
完成后,您可以使用 FirebaseInstanceId.getInstance(context).getToken(...)
向其他发件人 ID 注册 FCM sdk
但请注意,最新的 FCM 功能(自动重试注册、主题订阅)仅适用于默认项目。
请仔细检查,您添加了
应用插件:'com.google.gms.google-services'
在应用程序的 gradle 文件的底部,然后清理并重建项目
事实证明,您需要为 FCM 使用 google-services.json,并处理多个构建变体的情况,
- 从 firebase 控制台为不同的构建变体生成相应的 google-services.json。
- 下载google-services.json
- 在您的项目中为变体创建文件夹,例如,如果您想要发布版本,请创建一个名为 "release" 的文件夹并将 google-services.json 放入其中。
应用构建时,根据构建变体,它会在相应文件夹中查找 google-services.json 并从中获取项目详细信息。
可以在这个线程上找到更多详细信息
google services issues 54
谢谢阿瑟·汤普森
我已经实施了 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 应用程序初始化异常
原因:java.lang.IllegalStateException:名称为 [DEFAULT] 的 FirebaseApp 不存在。可用的应用名称:MyTestFCM
如果我删除应用程序名称,则我不会取回令牌,然后当我重新运行 应用程序时,我会得到一个令牌。我试图从 Mainactivity 和 Application class 执行上面的代码。在这两个地方我都得到了同样的错误。
所以我的问题是如何在不使用 google-services.json
的情况下初始化 Firebase 应用程序谢谢, P
您是否检查过以确保将 FIREBASE_URL 设置为正确的字符串?另外,您是否确保拥有适当的应用设置配置?
上次发生这种情况时,我需要设置 Android 应用程序配置。 https://support.google.com/firebase/answer/7015592
之后,您可以按照此设置进行操作。 https://firebase.google.com/docs/cloud-messaging/android/client
Firebase SDK 需要通过 google-services.json
完成后,您可以使用 FirebaseInstanceId.getInstance(context).getToken(...)
但请注意,最新的 FCM 功能(自动重试注册、主题订阅)仅适用于默认项目。
请仔细检查,您添加了
应用插件:'com.google.gms.google-services' 在应用程序的 gradle 文件的底部,然后清理并重建项目
事实证明,您需要为 FCM 使用 google-services.json,并处理多个构建变体的情况,
- 从 firebase 控制台为不同的构建变体生成相应的 google-services.json。
- 下载google-services.json
- 在您的项目中为变体创建文件夹,例如,如果您想要发布版本,请创建一个名为 "release" 的文件夹并将 google-services.json 放入其中。
应用构建时,根据构建变体,它会在相应文件夹中查找 google-services.json 并从中获取项目详细信息。
可以在这个线程上找到更多详细信息 google services issues 54
谢谢阿瑟·汤普森