我在firebase控制台站点上创建了Project。项目已成功创建并下载google-service.json文件并粘贴到android studio上的应用程序中。在显示logcat中生成的类FirebaseInstanceIDService.java令牌但是它没有生成而没有显示。当项目运行调试模式时,显示FirebaseInstanceIDService.java未加载。
Android Studio工具 - Firebase智能助理云消息设置正确显示和连接也会正确显示,但不会生成令牌。
FirebaseInstanceIDService.java
public class FirebaseInstanceIDService extends FirebaseInstanceIdService {
private static final String TAG = "MyFirebaseIIDService";
@Override
public void onTokenRefresh() {
super.onTokenRefresh();
String newToken = FirebaseInstanceId.getInstance().getToken();
Log.d(TAG, "Refreshed token: " + newToken);
Constan.token = newToken;
}
}
Gradle.build(项目级)
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
classpath 'com.google.gms:google-services:3.1.1'
}
Gradle.build(应用级)
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.firebase:firebase-messaging:11.0.4'
testCompile 'junit:junit:4.12'
compile 'com.squareup.okhttp:okhttp:2.0.0'
}
apply plugin: 'com.google.gms.google-services'
的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.firebase.zala.fiirebase">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name=".FirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
</application>
</manifest>
答案 0 :(得分:0)
从手机中卸载您的应用,然后再次安装并设置您的logcat进行调试。你会得到你的令牌。
答案 1 :(得分:0)
每次运行应用程序时都不会刷新令牌。因此很少会调用函数onTokenRefresh
。
但是第一次运行应用程序肯定会被称为。因此,当获得它时,您应该将其保存在共享首选项中,以便在应用程序的下一个用法中,您可以从共享首选项中获取令牌。
要再次获取令牌,您可以尝试卸载应用或清除应用数据,以便生成新令牌并调用方法onTokenRefresh
。
答案 2 :(得分:0)
请访问此link进行FCM集成。
1)build.gralde(项目级别)中的maven条目
allprojects {
repositories {
jcenter()
maven { url "https://maven.google.com" }// Google's Maven repository
}
}