随着最近发布的FirebaseInstanceId和FirebaseCloudMessaging (21.0.0
),Firebase已经不再推荐iid
包,现在已经不再推荐getToken()
和getId()
方法了。
根据火源释放说明,方法getToken()
被移动到FirebaseMessaging
在此之前:
FirebaseInstanceId.getInstance().getToken()
之后:
FirebaseMessaging.getInstance().getToken()
它给出了使用fcmToken
,但是要检索实例id,FirebaseMessaging或FirebaseInstanceId中没有可用的方法。
所以,instance_id
是否被认为是无用的id,不应该再使用了?或者这个有替代品吗?
发布于 2020-11-04 11:12:53
不推荐使用FirebaseInstanceId类,以获得令牌使用FirebaseMessagingClass。可以使用以下代码生成令牌:
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,正式文档是这样写的:
公共任务getInstanceId () ->这个方法是不推荐的。对于实例标识符,使用FirebaseInstallations.getId()代替。对于FCM注册令牌,使用FirebaseMessaging.getToken()代替。
发布于 2020-10-28 13:29:37
Fcm令牌
反对前的
val fcmToken = FirebaseInstanceId.getInstance().getToken()
替换
val fcmToken = FirebaseMessaging.getInstance().getToken()
FirebaseInstanceId#getId
反对前的
val istanceId = FirebaseInstanceId.getInstance().getId()
替换
通过查看FirebaseInstanceId#getId()
的代码,我看到了这样的建议:您应该使用FirebaseInstallations#getId
。
不推荐这种方法。 使用
FirebaseInstallations.getId()
代替。
val instanceId = FirebaseInstallation.getInstance().getId()
https://stackoverflow.com/questions/64573538
复制相似问题