swift – 登录后存储CurrentUser的最佳实践
发布时间:2020-12-14 04:59:48 所属栏目:百科 来源:网络整理
导读:我正在使用Firebase实现我的登录逻辑,只有Facebook作为提供者. 如何在登录后保存我的CurrentUser,以便在以后的应用体验中使用个人数据? 目前我正在使用带有User实例的单例.像这样的东西: CurrentUser.swift class CurrentUser { static let i: CurrentUser
我正在使用Firebase实现我的登录逻辑,只有Facebook作为提供者.
如何在登录后保存我的CurrentUser,以便在以后的应用体验中使用个人数据? 目前我正在使用带有User实例的单例.像这样的东西: CurrentUser.swift class CurrentUser { static let i: CurrentUser = CurrentUser() var cUser: User? private init() { } func setCurrentUser(u: User) { cUser = u } func getCurrentUser() -> User { return cUser! } func clearUser() { cUser = nil } func userIsLogged() -> Bool { return cUser != nil } } 而我正在以这种方式使用那个单身人士: LoginViewController.swift class LoginViewController: UIViewController { ... func createCurrentUser(authData: FAuthData) { let u = User(uid: authData.uid,displayName: authData.providerData["displayName"] as! String,email: authData.providerData["email"] as! String) u.wrapperFromFacebookData(authData.providerData) ref.childByAppendingPath("users").childByAppendingPath(u.uid).setValue(u.toDict()) CurrentUser.i.setCurrentUser(u) } ... } 我不认为这是最好的做法.在Firebase之前,我习惯于处理Parse内置用户逻辑,这非常容易. 解决方法
我正面临着确切的问题,这个链接有很多帮助:
http://totallyswift.com/ios-app-development-part-2/
他所做的是创建一个符合User类的单例(currentUser). class var currentUser: User { struct Static { static var instance: User? } if Static.instance == nil { if let load: AnyObject = NSUserDefaults.standardUserDefaults().objectForKey(kUserDataKey) { Static.instance = User(data: load as [String: AnyObject]) } else { Static.instance = User() } } return Static.instance! } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |