小编Iva*_*vic的帖子

FirebaseInstanceIdService getToken返回null

我试图将FCM通知添加到我的应用程序,但由于某种原因

FirebaseInstanceId.getInstance().getToken();
Run Code Online (Sandbox Code Playgroud)

返回null.

由于我没有得到任何堆栈跟踪,我最好的猜测是FirebaseInstanceIdService不起作用

  • Google Play服务版:9.6.1
  • Firebase消息传递版本:9.6.1
  • 从FirebaseConsole添加了json配置文件(在其中包含2个客户端的一个单独文件,一个用于调试,一个用于发布版本)和两个文件用于各自的构建

我在我的模块底部应用了谷歌服务插件gradle脚本在项目根gradle脚本中包含谷歌服务

从officail docs创建了2项服务:

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());
}
Run Code Online (Sandbox Code Playgroud)

}

并且清单:

<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"> …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-cloud-messaging

3
推荐指数
1
解决办法
1万
查看次数