随着FirebaseInstanceId和FirebaseCloudMessaging(21.0.0
)的最新发行版,Firebase已弃用了iid
包,并且现在已弃用getToken()
和getId()
方法。
根据Firebase release note,将getToken()
方法移至FirebaseMessaging
之前:
FirebaseInstanceId.getInstance().getToken()
后:FirebaseMessaging.getInstance().getToken()
它提供了fcmToken
,但是要检索实例ID ,FirebaseMessaging或FirebaseInstanceId中都没有可用的方法。因此,
instance_id
是否被认为是无用的ID,并且不应再使用?还是有替代品吗? 最佳答案
不推荐使用FirebaseInstanceId类,要使用FirebaseMessagingClass获得 token 。可以使用以下代码生成 token :
FirebaseMessaging.getInstance().getToken()
.addOnCompleteListener(new OnCompleteListener<String>() {
@Override
public void onComplete(@NonNull Task<String> task) {
if (!task.isSuccessful()) {
Log.w(TAG, "Fetching FCM registration token failed", task.getException());
return;
}
// Get new FCM registration token
String token = task.getResult();
// Log and toast
String msg = getString(R.string.msg_token_fmt, token);
Log.d(TAG, msg);
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
}
});
关于Firebase InstanceId,这是官方文件所说的内容: