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



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

InstanceID.instanceID().token()

现在,自从我更新了火力以来,此方法显示为已弃用。

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

我不知道如何使用instanceIDWithHandler我尝试过关注但不知道如何获取令牌。

func instanceID(handler: @escaping InstanceIDResultHandler){
}

请帮忙。 提前谢谢你。

获取当前注册令牌

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

  • 如果注册令牌是新的,请将其发送到应用程序服务器。
  • 将注册令牌订阅到主题。仅当新订阅或用户重新安装应用时,才需要执行此操作。

您可以使用instanceIDWithHandler:直接检索令牌。此回调提供了一个包含令牌的InstanceIDResult。如果实例 ID 检索以任何方式失败,则会提供非空错误。

您应该导入 FirebaseInstanceID

import FirebaseInstanceID

目标C

在你的获取令牌方法上

[[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)")
}
}

更新

InstanceID现已弃用。尝试

Messaging.messaging().token { token, error in
// Check for error. Otherwise do what you will with token here
}

InstanceID现已弃用。尝试

Messaging.messaging().token { token, error in
// Check for error. Otherwise do what you will with token here
}

请参阅有关获取当前注册令牌的文档

这里是解决方案

问题是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

Objective-C 的更新

[[FIRMessaging messaging] tokenWithCompletion:^(NSString * _Nullable token, NSError * _Nullable error) {
if (error != nil) {
NSLog(@"Error fetching remote instance ID: %@", error);
} else {
NSLog(@"Remote instance ID token: %@", token);
}
}];

相关内容

  • 没有找到相关文章

最新更新