我正在使用Swift和Firebase。以前,我使用以下方法获取Firebase令牌,然后将其用于存储到数据库中以发送通知。
InstanceID.instanceID().token()
现在,由于我已更新Firebase,因此此方法显示为已弃用。
'token()' is deprecated: Use instanceIDWithHandler: instead.
我不知道如何使用instanceIDWithHandler我尝试了以下操作,但不知道如何获取令牌。
instanceIDWithHandler
func instanceID(handler: @escaping InstanceIDResultHandler){ }
请帮忙。先感谢您。
获取当前注册令牌
注册令牌是通过方法传递的messaging:didReceiveRegistrationToken:。通常每个应用程序以FCM令牌开始一次调用此方法。调用此方法时,是执行以下操作的理想时间: 如果注册令牌是新的,请将其发送到您的应用程序服务器。 将注册令牌订阅到主题。仅对于新订阅或用户重新安装该应用程序的情况,才需要这样做。 您可以使用直接检索令牌 instanceIDWithHandler: 。该回调提供了一个 InstanceIDResult ,其中包含令牌。如果InstanceID检索以任何方式失败,则提供非null错误。
注册令牌是通过方法传递的messaging:didReceiveRegistrationToken:。通常每个应用程序以FCM令牌开始一次调用此方法。调用此方法时,是执行以下操作的理想时间:
messaging:didReceiveRegistrationToken:
您可以使用直接检索令牌 instanceIDWithHandler: 。该回调提供了一个 InstanceIDResult ,其中包含令牌。如果InstanceID检索以任何方式失败,则提供非null错误。
instanceIDWithHandler:
InstanceIDResult
您应该导入FirebaseInstanceID
import FirebaseInstanceID
目标C
在您的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)") } }