我正在和swift和firebase合作。之前,我使用以下方法来获取firebase令牌,然后将其存储到数据库中以发送通知。
InstanceID.instanceID().token()现在这个方法显示为弃用,因为我已经更新了我的firebase。
'token()' is deprecated: Use instanceIDWithHandler: instead.我不知道如何使用我尝试过的instanceIDWithHandler,但也不知道如何获取token。
func instanceID(handler: @escaping InstanceIDResultHandler){
}请帮帮忙。提前谢谢你。
发布于 2018-06-20 17:55:01
通过messaging:didReceiveRegistrationToken:方法提供
注册令牌。此方法通常在每个应用程序以FCM令牌启动时调用一次。调用此方法时,是执行以下操作的理想时机:
您可以使用instanceIDWithHandler:.直接检索
此回调提供一个包含令牌的
InstanceIDResult,。如果InstanceID检索以任何方式失败,都会提供一个非空错误。
您应该导入FirebaseInstanceID
import FirebaseInstanceIDobjective 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);
}
}];Swift
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)")
}
}发布于 2020-10-08 00:51:25
InstanceID现在已弃用。试一试
Messaging.messaging().token { token, error in
// Check for error. Otherwise do what you will with token here
}发布于 2021-08-09 04:13:40
这里的解决方案是
问题是FirebaseInstanceID最近被弃用了
年长的
InstanceID.instanceID().instanceID {result, _ in
新的
Messaging.messaging().token { (token, _) in
你可以像上面那样替换它,它可以工作。
检查此链接
https://stackoverflow.com/questions/50945015
复制相似问题