我应该怎么做才能更改或请求Firebase中的令牌? 基于设备信息的Firebase生成的唯一标记。通过代码强制更改/更新Firebase通知令牌或实例ID?
6
A
回答
8
现在,我在面对生成推送通知的Firebase新标记或更改标记的许多麻烦后得到了我的答案。
1)删除旧的火力地堡令牌
let instance = FIRInstanceID.instanceID()
_ = FIRInstanceID.delete(instance)
FIRInstanceID.instanceID().delete { (err:Error?) in
if err != nil{
print(err.debugDescription);
} else {
print("Token Deleted");
}
}
2)申请新的火力地堡令牌
if let token = FIRInstanceID.instanceID().token() {
print("Token \(token) fetched");
} else {
print("Unable to fetch token");
}
FIRMessaging.messaging().connect { (error) in
if (error != nil) {
print("Error connecting to FCM. \(error.debugDescription)")
} else {
print("Connected to FCM.")
}
}
0
我知道你想改变或更新火力令牌。
创建以下两种方法
func registerFirebaseToken() {
if let token = InstanceID.instanceID().token() {
print("FIREBASE: Token \(token) fetched")
} else {
print("FIREBASE: Unable to fetch token");
}
Messaging.messaging().shouldEstablishDirectChannel = true
}
func unregisterFirebaseToken(completion: @escaping (Bool)->()) {
// Delete the Firebase instance ID
InstanceID.instanceID().deleteID { (error) in
if error != nil{
print("FIREBASE: ", error.debugDescription);
completion(false)
} else {
print("FIREBASE: Token Deleted");
completion(true)
}
}
}
调用
unregisterFirebaseToken(:)
,并在封闭检查,如果为true,则调用
registerFi rebaseToken()
这将首次失败和委托方法的一个将被称为即
extension AppDelegate: MessagingDelegate {
func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) {
registerFirebaseToken()
}
}
这次
registerFirebaseToken()
将从委托方法中再次调用,您将获得一个新的令牌。
0
为雨燕4,火力4.8.2,FirebaseMessaging更新应答(2.0.8)
debugPrint("Existing Token :- \(Messaging.messaging().fcmToken!)")
let instance = InstanceID.instanceID()
instance.deleteID { (error) in
print(error.debugDescription)
}
if let token = InstanceID.instanceID().token() {
print("Token \(token) fetched");
} else {
print("Unable to fetch token");
}
Messaging.messaging().shouldEstablishDirectChannel = true
我们收到MessagingDelegate方法,以及在刷新令牌
此更新的代
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
print("Firebase registration token: \(fcmToken)")
}
相关问题
- 1. 更新Firebase时的通知?
- 2. 如何在通过代码更改值后强制更新TextBox的数据源?
- 3. 强制更改语言通知iOS
- 4. 通过cron更新Facebook访问令牌
- 5. 如何存储firebase实例id令牌?
- 6. 通过Ajax更新通知
- 7. 通过通知更新Tableview
- 8. 实例状态更改的通知
- 9. 通过代码更新IValueConverter代码
- 10. 如何通过android中的代码更改通知声音?
- 11. 如何通过C++中的代码通知DNS地址更改?
- 12. 更新实体通过ID使用瞬态的实例
- 13. 通过代码更改在Android的时间通过代码
- 14. ExpandableListAdapter:通知更改的调用代码
- 15. ViewModel在更改后通知代码
- 16. 更改我的通知代码
- 17. Eclipse svn代码更改通知插件
- 18. Firebase无法获取通知令牌
- 19. 禁用Visual Studio代码更新通知
- 20. 更新源代码时通知
- 21. 通过javascript更改div id
- 22. 更新/通过ID限制查找
- 23. 实时通知和更新
- 24. 基于Firebase更新的推送通知
- 25. 强制谷歌通过python社交授权刷新令牌
- 26. 试图通过代码更改classpath?
- 27. 只通过更改.ascx文件代码
- 28. 状态更改为通过代码
- 29. 通过代码更改选定的TabBarItem?
- 30. 通过代码更改MapFragment高度
这个“messaging()。connect”需要更新令牌吗? –
是的,因为没有办法更新令牌,首先我们必须删除令牌,然后请求新令牌,因此需要“消息()。连接”。如果你会找到另一种方式,建议总是欢迎。 – PRAVEEN
这个“删除”不再使用,我们必须使用“shouldEstablishDirectChannel”布尔值,并且它不刷新令牌,保持不变。当我解决它时,我会放在这里。谢谢! Swift 3中的 –