【发布时间】:2016-09-11 18:25:04
【问题描述】:
我已阅读有关此问题的其他帖子,但没有一个对我有帮助。我的问题是我从来没有得到令牌。我可以重新安装应用程序,无论如何,它永远不会生成。
我需要做些什么来初始化 Firebase?
这里有一些背景:
我有一个从 Firebase 控制台下载的 google-services.json 文件,存储在 src 目录下。
我已在 Firebase 控制台上输入了我的 debug.keystore SHA 1 指纹。
我的build.gradle 文件中有以下依赖项:
编译'com.google.firebase:firebase-core:9.4.0'
编译 '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>
无奈之下,我将这一行添加到我的 MainActivity.java 文件的 onCreate() 方法中:
FirebaseInstanceId.getInstance().getToken();
这只会使应用程序崩溃并出现此错误:
java.lang.RuntimeException:无法启动活动 组件信息{com.mobilenicity.werun/com.mydomain.myapp.Activities.ViewControllers.MainActivity}: java.lang.IllegalStateException:名称为 [DEFAULT] 的 FirebaseApp 不存在。
当然,我已经研究过这个错误,但没有一个解决方案对我有帮助。
不知道下一步该去哪里,但我显然错过了一些东西。任何人都可以对此有所了解吗?谢谢。
编辑
这是模块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 文件应该在 app 文件夹中,而不是 src 文件夹中
-
我认为你是对的。接得好。不幸的是,这似乎并不能解决问题。我会改变我的截图。谢谢!
-
将 google-services.json 放入正确的文件夹后,您需要重新安装应用程序,因为 onTokenRefresh() 方法仅在第一次运行,即安装应用程序时。
-
是的,我这样做了。这就是为什么我知道它不起作用。
-
您的应用程序是否使用多个进程实现?你能发布模块 build.gradle 文件吗?
标签: android firebase firebase-cloud-messaging