首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Firebase实例id: 21.0.0中getId()的弃用

Firebase实例id: 21.0.0中getId()的弃用
EN

Stack Overflow用户
提问于 2020-10-28 13:09:33
回答 4查看 16.8K关注 0票数 21

随着最近发布的FirebaseInstanceId和FirebaseCloudMessaging (21.0.0),Firebase已经不再推荐iid包,现在已经不再推荐getToken()getId()方法了。

根据火源释放说明,方法getToken()被移动到FirebaseMessaging

在此之前:

代码语言:javascript
运行
复制
FirebaseInstanceId.getInstance().getToken()

之后:

代码语言:javascript
运行
复制
FirebaseMessaging.getInstance().getToken()

它给出了使用fcmToken,但是要检索实例id,FirebaseMessaging或FirebaseInstanceId中没有可用的方法。

所以instance_id是否被认为是无用的id,不应该再使用了?或者这个有替代品吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-11-04 11:12:53

不推荐使用FirebaseInstanceId类,以获得令牌使用FirebaseMessagingClass。可以使用以下代码生成令牌:

代码语言:javascript
运行
复制
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()代替。

票数 45
EN

Stack Overflow用户

发布于 2020-10-28 13:29:37

Fcm令牌

反对前的

代码语言:javascript
运行
复制
val fcmToken = FirebaseInstanceId.getInstance().getToken()

替换

代码语言:javascript
运行
复制
val fcmToken = FirebaseMessaging.getInstance().getToken()

FirebaseInstanceId#getId

反对前的

代码语言:javascript
运行
复制
val istanceId = FirebaseInstanceId.getInstance().getId()

替换

通过查看FirebaseInstanceId#getId()的代码,我看到了这样的建议:您应该使用FirebaseInstallations#getId

不推荐这种方法。 使用FirebaseInstallations.getId()代替。

代码语言:javascript
运行
复制
val instanceId = FirebaseInstallation.getInstance().getId()
票数 8
EN

Stack Overflow用户

发布于 2022-01-11 08:13:02

  • FCM令牌: 使用信息传递软件包 弦乐?token =等待FirebaseMessaging.instance.getToken();
  • 安装ID: 使用装置软件包 字符串id =等待FirebaseInstallations.instance.getId();
  • 安装令牌: 字符串令牌=等待FirebaseInstallations.instance.getToken();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64573538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档