Android:Firebase令牌获取无效长度

时间:2017-06-27 07:08:07

标签: android firebase firebase-cloud-messaging

我正在尝试通过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

任何人都可以告诉我为什么有些时候会收到无效令牌。

2 个答案:

答案 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());

                }
            });