FCM 令牌在 android 牛轧糖中返回 null



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

你什么时候打电话给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'

相关内容

  • 没有找到相关文章