首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firebase InstanceID.instanceID().token()方法已弃用

Firebase InstanceID.instanceID().token()方法已弃用
EN

Stack Overflow用户
提问于 2018-06-20 17:39:52
回答 3查看 34.1K关注 0票数 43

我正在和swift和firebase合作。之前,我使用以下方法来获取firebase令牌,然后将其存储到数据库中以发送通知。

代码语言:javascript
复制
InstanceID.instanceID().token()

现在这个方法显示为弃用,因为我已经更新了我的firebase。

代码语言:javascript
复制
'token()' is deprecated: Use instanceIDWithHandler: instead.

我不知道如何使用我尝试过的instanceIDWithHandler,但也不知道如何获取token。

代码语言:javascript
复制
func instanceID(handler: @escaping InstanceIDResultHandler){

    }

请帮帮忙。提前谢谢你。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-20 17:55:01

通过messaging:didReceiveRegistrationToken:方法提供

注册令牌。此方法通常在每个应用程序以FCM令牌启动时调用一次。调用此方法时,是执行以下操作的理想时机:

  • 如果注册令牌是新的,请将其发送到应用程序服务器。

  • 将注册令牌订阅到主题。这仅适用于新订阅或用户重新安装应用程序的情况。

您可以使用instanceIDWithHandler:.直接检索

此回调提供一个包含令牌的InstanceIDResult,。如果InstanceID检索以任何方式失败,都会提供一个非空错误。

您应该导入FirebaseInstanceID

代码语言:javascript
复制
  import FirebaseInstanceID

objective C

在getTokenMethod上

代码语言:javascript
复制
[[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);
    }
}];

Swift

代码语言:javascript
复制
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)")
    }
}
票数 59
EN

Stack Overflow用户

发布于 2020-10-08 00:51:25

InstanceID现在已弃用。试一试

代码语言:javascript
复制
Messaging.messaging().token { token, error in
   // Check for error. Otherwise do what you will with token here
}

请参阅Documentation on Fetching the current registration token

票数 51
EN

Stack Overflow用户

发布于 2021-08-09 04:13:40

这里的解决方案是

问题是FirebaseInstanceID最近被弃用了

年长的

InstanceID.instanceID().instanceID {result, _ in

新的

Messaging.messaging().token { (token, _) in

你可以像上面那样替换它,它可以工作。

检查此链接

https://medium.com/nerd-for-tech/how-to-solve-capacitor-error-no-such-module-firebaseinstanceid-9c142933b589

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50945015

复制
相关文章

相似问题

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