加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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!
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读