微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Firebase实例ID:在21.0.0中弃用getId

如何解决Firebase实例ID:在21.0.0中弃用getId

随着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获得令牌。可以使用以下代码生成令牌:

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()。

,

检查FirebaseInstanceId#getId()的代码,我发现建议您改用FirebaseInstallations#getId

不推荐使用此方法

改为使用FirebaseInstallations.getId()

val instanceId = FirebaseInstallation.getInstance().getId()
,

试试这个

 public String getToken() {
String token;
        FirebaseMessaging.getInstance().getToken()
                .addOnCompleteListener(new OnCompleteListener<String>() {
                    @Override
                    public void onComplete(@NonNull Task<String> task) {
                        if (task.isSuccessful()) {

                           token = task.getResult();
                            

                        }
                    }
                });
        
        return token;
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。