持久用户身份验证Firebase Swift

时间:2016-04-22 10:22:21

标签: swift firebase

您好我正在尝试使用Firebase和Swift,但我遇到了一些问题,这些问题会对用户进行身份验证并使其在应用重新启动时保持不变。

我正在使用Twitter authHelper,经过身份验证后会返回一个包含用户uid和所有这些内容的FAuthData对象。

事情是,当我(或系统)杀死应用程序时,所有身份验证的东西都会被吹走,我需要重新登录,因为我没有存储“authData”对象。

我该怎么做?

非常感谢

1 个答案:

答案 0 :(得分:1)

执行此操作的最佳方法是使用NSUserDefaults。这可以通过以下方式完成(假设您使用的是FIRAuth,但Twitter登录将为您提供相同的authData):

FIRAuth.auth()!.createUserWithEmail(email, password: pwd, completion: { authData, error  in

            if error == nil {
                //enable automatic login for future usage
                NSUserDefaults.standardUserDefaults().setValue(authData?.uid, forKey: "uid")    
})

当用户下次打开应用程序时,请执行以下检查以查看用户之前是否已登录:

if NSUserDefaults.standardUserDefaults().valueForKey(KEY_UID) != nil {
        dispatch_async(dispatch_get_main_queue()) {
            [unowned self] in
            self.performSegueWithIdentifier(SEGUE_LOGGED_IN, sender: nil)
        }
    }