Приложение Firebase по умолчанию не инициализировано - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь интегрировать FCM в одно из моих приложений для Android.Я следовал инструкциям согласно документации, и мое приложение POC работает нормально.Когда я выполняю те же шаги в своем последнем приложении, которое является мультидексным приложением, оно не работает.Я получаю исключение о недопустимом состоянии с сообщением о том, что приложение Firebase по умолчанию не было инициализировано.Имя моего пакета (определено в файле манифеста) и идентификатор приложения (как определено в файле gradle) различаются, и в файле google-services.json он принял идентификатор приложения в разделе информации о клиенте.Я пробовал поиск в сети, прошел несколько обсуждений переполнения стека, но ни одно из предложений не сработало для меня.

Раздел из файла манифеста:

<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);
                    }
                }
            });

1 Ответ

0 голосов
/ 31 декабря 2018

Попробуйте это и вам нужно добавить файл google-services.json из консоли Firebase.

FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
        @Override
        public void onSuccess(InstanceIdResult instanceIdResult) {
            String deviceToken = instanceIdResult.getToken();
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...