随着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,这是官方文件所说的内容:

08-18 03:55