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!
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
