【问题标题】:Default firebase application not initialized默认 Firebase 应用程序未初始化
【发布时间】:2018-12-31 05:38:38
【问题描述】:

我正在尝试将 FCM 集成到我的一个 Android 应用程序中。我已按照文档中的说明进行操作,并且我的 POC 应用程序运行良好。当我按照相同的步骤操作时,在我的最终应用程序(一个 multidex 应用程序)中,它无法正常工作。我收到一个非法状态异常,并显示默认 Firebase 应用程序尚未初始化的消息。我的包名称(在清单文件中定义)和应用程序 ID(在 gradle 文件中定义)不同,在 google-services.json 文件中,它在客户端信息部分采用了应用程序 ID。我试过在网上搜索,经历了几次堆栈溢出讨论,但没有一个建议对我有用。

Manifest 文件中的部分:

<service
  android:name=".services.JBFirebaseMessagingService">
  <intent-filter>
    <action android:name="com.google.firebase.MESSAGING_EVENT"/>
  </intent-filter>
</service>

活动中的初始化代码:

FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
                @Override
                public void onComplete(@NonNull Task<InstanceIdResult> task) {
                    if (!task.isSuccessful()) {
                        Log.w("", "getInstanceId failed", task.getException());
                        return;
                    }
                    // Get new Instance ID token
                    if (task.getResult() != null) {
                        String token = task.getResult().getToken();
                        // Log
                        String msg = getString(R.string.msg_token_fmt, token);
                        Log.d("", msg);
                        LogHelper.writeLog(null,msg);
                    }
                }
            });

【问题讨论】:

标签: android firebase firebase-cloud-messaging


【解决方案1】:

试试这个 你必须从 firebase 控制台添加 google-services.json 文件。

FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
        @Override
        public void onSuccess(InstanceIdResult instanceIdResult) {
            String deviceToken = instanceIdResult.getToken();
        }
    });

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2022-12-01
  • 2020-10-09
  • 2018-04-08
  • 1970-01-01
  • 2019-07-05
  • 1970-01-01
  • 2011-06-18
  • 1970-01-01
相关资源
最近更新 更多