FCM令牌在android牛轧糖中返回null [英] FCM token returns null in android nougat
问题描述
在安装我的应用程序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屋!