Mah*_*alv 10 android firebase firebase-cloud-messaging
随着 FirebaseInstanceId 和 FirebaseCloudMessaging ( 21.0.0)最近发布,Firebase已弃用iid包,现在不推荐使用getToken()和getId()方法。
根据Firebase 发行说明,该方法getToken()已移至FirebaseMessaging
前:
FirebaseInstanceId.getInstance().getToken()
Run Code Online (Sandbox Code Playgroud)
后:
FirebaseMessaging.getInstance().getToken()
Run Code Online (Sandbox Code Playgroud)
这提供了使用fcmToken,但要检索实例 id,FirebaseMessaging 和 FirebaseInstanceId 中没有可用的方法。
那么,是否instance_id被认为是无用的 id,不应再使用?或者有替代品吗?
小智 30
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();
}
});
Run Code Online (Sandbox Code Playgroud)
关于Firebase InstanceId,官方文档是这样说的:
public Task getInstanceId () -> 此方法已弃用。对于实例标识符,请改用 FirebaseInstallations.getId()。对于 FCM 注册令牌,请改用 FirebaseMessaging.getToken()。
弃用前
val fcmToken = FirebaseInstanceId.getInstance().getToken()
Run Code Online (Sandbox Code Playgroud)
替代品
val fcmToken = FirebaseMessaging.getInstance().getToken()
Run Code Online (Sandbox Code Playgroud)
FirebaseInstanceId#getId弃用前
val istanceId = FirebaseInstanceId.getInstance().getId()
Run Code Online (Sandbox Code Playgroud)
替代品
查看FirebaseInstanceId#getId()我的代码,看到了您应该改用的建议FirebaseInstallations#getId。
此方法已弃用
使用
FirebaseInstallations.getId()来代替。
val instanceId = FirebaseInstallation.getInstance().getId()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7664 次 |
| 最近记录: |