-2
未在Android Nougat设备中生成FCM令牌(Moto,Sony &华为)安装我的应用程序时FirebaseInstanceId.getInstance().getToken()返回null,但是在Emulator(Nougat)并低于牛轧糖版本。FCM令牌在android nougat中返回null
未在Android Nougat设备中生成FCM令牌(Moto,Sony &华为)安装我的应用程序时FirebaseInstanceId.getInstance().getToken()返回null,但是在Emulator(Nougat)并低于牛轧糖版本。FCM令牌在android nougat中返回null
你什么时候打电话FirebaseInstanceId.getInstance().getToken()
? 您需要等待延期FirebaseInstanceIdService
的onTokenRefresh
回拨服务。这是您的令牌可用的时刻。
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'