我正在尝试通过Firebase获得Push noptification。尝试从firebase获取令牌时,令牌长度为140(无效),有时会获得长度为150的有效令牌。同一设备正在测试,因此没有特定于设备的问题
令牌无效
APA91bEQ14IejWxNnQ_pzY-GMs3Bx7Wi_0Iib7CKTNVlRGAFujP-VsWQwxBpMB4D1JUV91Ao_E6Ry8qEfJbjGLEEmyPX2oBI7KCmf4BIk5Jqyd456jxFvt2S-zIFyBFI2xwxOf5FwOEN
有效令牌
fzdOrLvN02w:APA91bETJie1o1v8LPWdJKvdI_XzqDdZ7z5FggXZASbD4pp9JLXMGeRudnyLEcY75u0ZVd494znghVJD7ZhZymN7g1bdE07qLocsoOOjlk9TwBa6kgGqHSSsKfENTM62UM_M_azwsvlU
差异我注意到,有一个冒号有12个字符的有效令牌。但我不知道原因是什么
的build.gradle
dependencies {
compile 'com.google.firebase:firebase-messaging:9.0.0'
compile 'com.google.firebase:firebase-core:9.0.0'
compile 'com.google.android.gms:play-services:9.0.0'
}
apply plugin: 'com.google.gms.google-services'
清单
<service android:name=".firebase.MyFirebaseRegistrationIntentService" android:exported="false"/>
<service android:name=".firebase.MyFirebaseMessagingService"
android:exported="false" >
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name=".firebase.MyFirebaseInstanceIDService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
我正在使用 onHandleToken()覆盖功能获取FCM令牌,该功能位于 MyFirebaseRegistrationIntentService
任何人都可以告诉我为什么有些时候会收到无效令牌。
答案 0 :(得分:0)
您可以使用以下代码在firebase中获取令牌:
String fcm_idtoken = FirebaseInstanceId.getInstance().getToken();
答案 1 :(得分:0)
使用此代码获取有效令牌ID
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String deviceToken = instanceIdResult.getToken();
Log.d(TAG,deviceToken);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d(TAG,e.toString());
}
});