Android - FCM - onRefreshToken从未调用过

时间:2017-02-23 13:19:25

标签: android firebase firebase-cloud-messaging

我只是使用Google登录Firebase身份验证。我想用FCM。 我遵循firebase文档,但永远不会调用onRefreshToken。

我手动打电话的那一刻:

FirebaseInstanceId.getInstance().getToken()

我将手机用作模拟器。如果我卸载/安装应用程序“onTokenRefresh”永远不会被调用。

我只是:

  

I / FirebaseInitProvider:FirebaseApp初始化成功

如果我有我的清单:

<service android:name=".ui.service.CloudMessaging"
        android:enabled="true">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>

在“CloudMessaging”中:

public class CloudMessaging extends FirebaseInstanceIdService {

@Override
public void onTokenRefresh() {
    String refreshToken = FirebaseInstanceId.getInstance().getToken();
    Log.e("TOTO", refreshToken);
}
}
你可以帮帮我吗?我不知道我能做什么。

由于

编辑:我的Graddle文件

Graddle项目:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://jitpack.io"
        }
        maven {
            url "https://oss.sonatype.org/content/repositories/snapshots/"
        }
    }
}

App Graddle:

dependencies {
compile 'com.android.support:appcompat-v7:25.1.1'
compile 'com.mcxiaoke.volley:library:1.0.19'
compile 'com.google.code.gson:gson:2.8.0'
compile 'com.android.support:design:25.1.1'
compile 'com.android.support:support-v4:25.1.1'
compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT'
compile 'id.zelory:compressor:1.0.4'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.github.andyxialm:ColorDialog:1.0.0'
compile 'com.github.GrenderG:Toasty:1.1.3'
compile 'com.google.firebase:firebase-ads:10.0.1'
compile 'com.github.chrisbanes:PhotoView:1.3.1'
compile 'com.android.support:cardview-v7:25.1.1'
compile 'com.google.firebase:firebase-auth:10.0.1'
compile 'com.google.android.gms:play-services-auth:10.0.1'
compile 'com.google.firebase:firebase-messaging:10.0.1'
}


apply plugin: 'com.google.gms.google-services'

1 个答案:

答案 0 :(得分:1)

<service android:name=".Firebase.MyFirebaseMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
        <service android:name=".Firebase.MyFirebaseInstanceIDService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
            </intent-filter>
        </service>
  1. 您应该在清单中同时拥有这两项服务。
  2. 谷歌的Json文件应该在应用程序FOlder中。
  3. 不要忘记build.gradle的内部classpath 'com.google.gms:google-services:3.0.0'内部(项目,不在主要依赖项中)
  4. 4. apply plugin: 'com.google.gms.google-services'应该放在。{ gradle(app)的底部。

    5.不应更改Google json文件名。它应该是项目中的google-services.json。