FirebaseInstanceIdService getToken null zurückgeben

Ich bin versucht, hinzuzufügen FCM-Benachrichtigungen an meine app, aber aus irgendeinem Grund

FirebaseInstanceId.getInstance().getToken();

ist die Rückgabe null.

Da ich nicht immer alle stacktrace meine beste Vermutung ist, dass FirebaseInstanceIdService nicht funktioniert

  • Google Play-Dienste version: 9.6.1
  • FB-messaging-version : 9.6.1
  • Hinzugefügt json-config-Datei von FirebaseConsole (Versucht eine einzige Datei mit 2 clients drin, die man für debug und eine für release-build) und 2 Dateien für den jeweiligen build

Iw angewendet, google-Dienste-plugin am unteren Rand meine Module gradle-Skript
Inklusive google-Dienste in Projekten root-gradle-Skript

Erstellt 2 Leistungen aus dem officail docs:

public class MyFirebaseInsanceIDService  extends FirebaseInstanceIdService {

private static final String TAG = "MyFirebaseIIDService";

@Override
public void onTokenRefresh() {
    //Get updated InstanceID token.
    String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    PreferencesHelper.putSharedPreferencesString(Constants.User.PUSH_NOTIFICATIONS, refreshedToken);

    Log.e("TOKEN", "Token: " + FirebaseInstanceId.getInstance().getToken());
}

}

Und das manifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.fc.test">

<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.INTERNET" />

<application
    android:name="fctest"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="${appName}${appNameSuffix}"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    tools:node="replace">

    <service
        android:name="com.fc.test.MyFirebaseInsanceIDService"
        android:enabled="true"
        android:exported="true">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>

    <service
        android:name="com.fc.test.MyFirebaseMessagingService"
        android:enabled="true"
        android:exported="true">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

    <activity
        android:name="com.fc.test.view.splash.Splash"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme.CenterAnimation">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>

root-Gradle:

buildscript {
    repositories {
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        //noinspection GradleDynamicVersion
        classpath 'io.fabric.tools:gradle:1.+'
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "http://dl.bintray.com/drummer-aidan/maven" }
        maven { url "https://maven.fabric.io/public" }
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
        maven { url "https://jitpack.io" }
    }
}

ext {
    buildToolsVersion = '24.0.1'
    compileSdkVersion = 24
    minSdkVersion = 15
    targetSdkVersion = 24
    supportLibraryVersion = '24.2.1'
}

und der größte Teil der Module Gradle

    dependencies {
    final PLAY_SERVICES_VERSION = '9.6.1'
    final SUPPORT_LIBRARY_VERSION = '24.2.1'
    final RETROFIT_VERSION = '2.1.0'
    final DAGGER_VERSION = '2.5'
    final DEXMAKER_VERSION = '1.4'
    final HAMCREST_VERSION = '1.3'
    final ESPRESSO_VERSION = '2.2.1'
    final RUNNER_VERSION = '0.4'
    final BUTTERKNIFE_VERSION = '8.1.0'
    def daggerCompiler = "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
    def jUnit = "junit:junit:4.12"
    def mockito = "org.mockito:mockito-core:1.10.19"
    //App Dependencies
    compile "com.google.android.gms:play-services-gcm:$PLAY_SERVICES_VERSION"
    compile "com.google.firebase:firebase-messaging:$PLAY_SERVICES_VERSION"
    compile "com.android.support:appcompat-v7:$SUPPORT_LIBRARY_VERSION"
    compile "com.android.support:recyclerview-v7:$SUPPORT_LIBRARY_VERSION"
    compile "com.android.support:cardview-v7:$SUPPORT_LIBRARY_VERSION"
    compile "com.android.support:design:$SUPPORT_LIBRARY_VERSION"
    compile "com.android.support:support-annotations:$SUPPORT_LIBRARY_VERSION"
    compile "com.android.support:support-v4:$SUPPORT_LIBRARY_VERSION"
    compile "com.squareup.retrofit2:retrofit:$RETROFIT_VERSION"
    compile "com.squareup.retrofit2:converter-gson:$RETROFIT_VERSION"
    compile "com.squareup.retrofit2:adapter-rxjava:$RETROFIT_VERSION"
    compile "com.jakewharton:butterknife:$BUTTERKNIFE_VERSION"
    compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
        transitive = true;
    }
}
apply plugin: 'com.google.gms.google-services
  • Beachten Sie, dass im mit tools:node="replace" in meinem stammanwendungs-tag.
    Ist es möglich, dass FirebaseInstanceIdService ist nicht mehr zu manifestieren, da Sie den gleichen Vorsatz-filter, wie mir FirebaseInstanceService und somit nicht aufgerufen?

Also hier meine Frage wäre, gibt es etwas falsch es die offiziellen docs oder in meiner Implementierung, sollte dazu führen, dass die Instanz token auf null sein?

Ist eine aktuelle version der Google Play Services auf dem Gerät installiert oder emulator?
Ja ich bin testen diese auf meinem Gerät GS-version 9.6.83
Überprüfen Sie, dass die Sender ID gezeigt, die auf der Cloud-Messaging-Registerkarte Projekt-Einstellungen in der FB-Konsole entspricht den project_number enthalten in Ihrem google-services.json-Datei.
ja es sind die gleichen
Ich habe angefangen zu denken, Sie sind Recht tools:node="replace" das problem, wissen aber nicht konkret warum. Ist es möglich, erstellen Sie die app auch ohne es?

InformationsquelleAutor Ivan Milisavljevic | 2016-10-12

Schreibe einen Kommentar