FCM推送通知令牌未生成

时间:2017-10-27 05:41:55

标签: android mysql push-notification

我在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>

3 个答案:

答案 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
    }
}