Parse.com 用户在离线时注销
Posted
技术标签:
【中文标题】Parse.com 用户在离线时注销【英文标题】:Parse.com user log out while offline 【发布时间】:2016-04-19 22:52:27 【问题描述】:这是我遇到的问题。 我正在使用 Parse.com 构建具有登录/注销功能的应用程序。 当设备连接到网络时,我实现 PFUser.logOut() 没有问题。 我的问题是用户离线时。即使没有互联网连接,我也希望能够将它们注销。 到目前为止,我已经尝试从 localDatastore 中删除会话并取消固定 PFUser.currentUser()?.unpinInBackground()。这些都没有奏效。 有什么想法吗?
【问题讨论】:
【参考方案1】:您可以尝试这样注销:
PFUser.logOutInBackgroundWithBlock( (error) -> Void in
if error != nil
PFUser.currentUser()?.username = nil
)
要检查用户是否使用此解决方案登录,您需要检查他的用户名:
if let _ = PFUser.currentUser()?.username
//The user is logged in
//self.performSegueWithIdentifier("showLoggedViewController", sender: self)
【讨论】:
是的,这是个好主意,但 Parse SDK 说:“'无法删除 PFUser 的'用户名'字段。'” 我的日志只显示网络错误:[Error]: The Internet connection appears to be offline. (Code: 100, Version: 1.12.0) [Error]: Network connection failed. Making attempt 1 after sleeping for 1.966949 seconds.
但没有关于他无法删除 PFUser 的用户名字段...
如果你离开它,只要尝试所有尝试,那么它会显示错误吗?
Parse 似乎尝试了 4 次连接网络(时间间隔是随机的,可能需要 15/30 秒才能到达最后一次尝试)
是的,确切地说,这就是我要避免的……我不希望用户等待半分钟后退出。否则,如果之后您连接并打开应用程序,Parse 会记得注销:D【参考方案2】:
看来您必须连接到 Internet 才能执行注销。不过文档中并未明确提及。
【讨论】:
以上是关于Parse.com 用户在离线时注销的主要内容,如果未能解决你的问题,请参考以下文章
即使在离线时如何缓存网页以在我的 android 应用程序中使用