Я читал другие сообщения по этому вопросу, но ни один из них не помогает мне. Моя проблема в том, что я НИКОГДА не получаю токен. Я могу переустановить приложение, независимо от того, он никогда не генерирует.Firebase onTokenRefresh() никогда не назывался
Есть ли что-то, что мне нужно для инициализации Firebase?
Вот некоторые фон:
У меня есть google-services.json
файл, который я скачал с консоли Firebase хранится в каталоге Src.
Я вошел в мой debug.keystore
SHA 1 отпечаток на Firebase консоли.
У меня есть следующие зависимости в моем build.gradle
файле:
compile 'com.google.firebase:firebase-core:9.4.0'
compile 'com.google.firebase:firebase-messaging:9.4.0'
Я следовал Firebase instructions к письму:
MyFirebaseInstanceIdService.java
public class MyFirebaseInstanceIdService extends FirebaseInstanceIdService {
private static final String TAG = "MyFirebaseIIDService";
@Override
public void onTokenRefresh() {
Log.d(TAG, "on token refresh");
// Get updated InstanceID token.
String token = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + token);
sendRegistrationToServer(token);
}
private void sendRegistrationToServer(String token) {
}
}
И у меня есть это в теге <application>
в манифесте:
<service
android:name=".HelperClasses.PushNotifications.MyFirebaseInstanceIdService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
В отчаянии, я добавил эту строку в метод OnCreate() моего MainActivity.java файла:
FirebaseInstanceId.getInstance().getToken();
Это просто разбивает приложение с этой ошибкой:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mobilenicity.werun/com.mydomain.myapp.Activities.ViewControllers.MainActivity}: java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist.
Конечно, я исследовал эту ошибку, но ни одно из решений не помогло мне.
Не знаю, куда обратиться, но у меня явно что-то отсутствует. Может кто-нибудь пролить некоторый свет на это? Спасибо.
EDIT
Вот модуль build.gradle
файла:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.3'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
classpath 'com.google.gms:google-services:3.0.0'
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
maven {url 'https://oss.sonatype.org/content/repositories/snapshots/'}
}
}
Я думаю, что файл Google-services.json должен быть внутри папки приложения, а не папка ЦСИ –
Я думаю, что вы правы. Хороший улов. К сожалению, это, похоже, не решает проблему. Я поменяю свой снимок экрана. Благодаря! – Alex
После размещения google-services.json в правой папке вам нужно переустановить приложение, поскольку метод onTokenRefresh() запускается только в первый раз, то есть когда приложение установлено. –