繁体   English   中英

我需要“didReceiveRegistrationToken”吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM