FCM令牌在android牛轧糖中返回null [英] FCM token returns null in android nougat

查看:93
本文介绍了FCM令牌在android牛轧糖中返回null的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在安装我的应用程序FirebaseInstanceId.getInstance().getToken()时,未在Android Nougat设备(Moto,Sony&华为)中生成的FCM令牌返回null,但在Emulator(Nougat)及以下Nougat版本中生成的FCM令牌.

FCM token not generated in Android Nougat device(Moto,Sony & Huawei) when installed my app FirebaseInstanceId.getInstance().getToken() returns null, But FCM token generated in Emulator(Nougat) and below Nougat versions.

推荐答案

您何时致电FirebaseInstanceId.getInstance().getToken()? 您需要在扩展FirebaseInstanceIdService的服务中等待onTokenRefresh回调.这是您的令牌可用的那一刻.

When do you call FirebaseInstanceId.getInstance().getToken()? You need to wait in a Service extending FirebaseInstanceIdService for the onTokenRefresh callback. This is the moment, where your Token is available.

public class FcmTokenService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
    try {
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
        if (refreshedToken != null) {
            Log.i("FCM", String.format("Received new registration token from Firebase: token=\"%s\";", refreshedToken));
            // ... forward the new token to some point in your app to store it
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
}

在清单中注册服务:

    <service android:name=".services.FcmTokenService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
        </intent-filter>
    </service>

这应该是build.gradle文件中的最后行:

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

这篇关于FCM令牌在android牛轧糖中返回null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆