Firebase InstanceID.instanceIDtoken方法已弃用

问题描述

获取当前注册令牌

注册令牌是通过方法传递的messaging:didReceiveRegistrationToken:。通常每个应用程序以FCM令牌开始一次调用此方法。调用此方法时,是执行以下操作的理想时间:

  • 如果注册令牌是新的,请将其发送到您的应用程序服务器。
  • 将注册令牌订阅到主题。仅对于新订阅或用户重新安装该应用程序的情况,才需要这样做。

您可以使用直接检索令牌 。该回调提供了一个 ,其中包含令牌。如果InstanceID检索以任何方式失败,则提供非null错误。

您应该导入FirebaseInstanceID

  import FirebaseInstanceID

在您的getTokenMethod

[[FIRInstanceID instanceID] instanceIDWithHandler:^(FIRInstanceIDResult * _Nullable result,
                                                NSError * _Nullable error) {
if (error != nil) {
NSLog(@"Error fetching remote instance ID: %@", error);
} else {
NSLog(@"Remote instance ID token: %@", result.token);
}
}];

InstanceID.instanceID().instanceID { (result, error) in
if let error = error {
print("Error fetching remote instange ID: \(error)")
} else if let result = result {
print("Remote instance ID token: \(result.token)")
 }
}

解决方法

我正在使用Swift和Firebase。以前,我使用以下方法获取Firebase令牌,然后将其用于存储到数据库中以发送通知。

InstanceID.instanceID().token()

现在,由于我已更新Firebase,因此此方法显示为已弃用。

'token()' is deprecated: Use instanceIDWithHandler: instead.

我不知道如何使用instanceIDWithHandler我尝试了以下操作,但不知道如何获取令牌。

func instanceID(handler: @escaping InstanceIDResultHandler){

    }

请帮忙。先感谢您。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...