[英]Do i need to "didReceiveRegistrationToken"?
我想发送通知,但只发送给经过身份验证的用户。 这意味着,如果我的令牌更新(潜在原因:应用程序在新设备上恢复、用户卸载/重新安装应用程序或用户清除应用程序数据),我的用户也不会通过身份验证。
因此,每当我的用户尝试登录时,我都会为我的后端更新通过此方法收到的令牌:
Messaging.messaging().token { token, error in
// ...
}
当用户注销时我删除了令牌,那么为什么我要在这里实现这个方法:
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
}
但是,如果我不实施它,我会收到:
9.5.0 - [FirebaseMessaging][I-FCM002023] The object <Name.Delegate: 0x2827c0650> does not respond to -messaging:didReceiveRegistrationToken:. Please implement -messaging:didReceiveRegistrationToken: to be provided with an FCM token.
在此 function 中,您必须将设备“令牌”或“刷新令牌”保存为本地:
"didReceiveRegistrationToken"
当用户登录时,您必须在后端注册推送令牌
当用户注销时,您必须清除后端的推送令牌
您必须在登录后在“KeyChain”中设置一个键值,例如:
"userId" : "x"
“对于登录前清除或卸载应用程序的用户” :
在每次启动时,您必须检查您的应用程序用户是否登录?
如果“ NO ”(没有令牌):
您必须使用保存在钥匙串上的“userId -> x”清除推送令牌。 (向后端请求)
尽管新的推送令牌与以前的推送令牌不同。
如果“是”(用户有后端令牌)
您必须从以下 function 保存新的“push-token”或“refresh-push-token”:
"didReceiveRegistrationToken"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.