Poo*_*rya 5 android firebase firebase-cloud-messaging
我注意到in com.google.firebase:firebase-messaging:17.1.0 FirebaseInstanceIdService已被弃用,因此尝试覆盖onNewToken()in,FirebaseMessagingService但似乎从未调用过它。
并FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken()返回一个异常
java.lang.IllegalStateException: Task is not yet complete`
Run Code Online (Sandbox Code Playgroud)
我特别想念什么吗?
所以我遵循了文档,这是我的代码
表现:
<!--<service android:name=".network.AppFirebaseInstanceIdService">-->
<!--<intent-filter>-->
<!--<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />-->
<!--</intent-filter>-->
<!--</service>-->
<service
android:name=".network.AppFirebaseMessagingService"
android:stopWithTask="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
Run Code Online (Sandbox Code Playgroud)
AppFirebaseMessagingService:
@Override
public void onNewToken(String s) {
Log.d(TAG,"Refreshed token: " + s);
sendRegistrationToServer(s);
}
Run Code Online (Sandbox Code Playgroud)
活动中:
_btnTemptest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FirebaseMessaging.getInstance().setAutoInitEnabled(true);
Toast.makeText(LoginActivity.this, FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken(), Toast.LENGTH_SHORT).show();
// which throws java.lang.IllegalStateException: Task is not yet complete`
}
});
Run Code Online (Sandbox Code Playgroud)
我特别想念什么吗?
不,你什么都不丢失
建议
别用 FirebaseInstanceId.getInstance().getInstanceId().getResult().getToken()它抛出异常(我也遇到过同样的问题)
如何获得代币
您需要使用
FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( MyActivity.this, new OnSuccessListener<InstanceIdResult>() {
@Override
public void onSuccess(InstanceIdResult instanceIdResult) {
String newToken = instanceIdResult.getToken();
Toast.makeText(LoginActivity.this, newToken, Toast.LENGTH_SHORT).show();
}
});
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息,请查看这里火力github上的链接
| 归档时间: |
|
| 查看次数: |
596 次 |
| 最近记录: |