您好我正在尝试使用Firebase和Swift,但我遇到了一些问题,这些问题会对用户进行身份验证并使其在应用重新启动时保持不变。
我正在使用Twitter authHelper,经过身份验证后会返回一个包含用户uid和所有这些内容的FAuthData对象。
事情是,当我(或系统)杀死应用程序时,所有身份验证的东西都会被吹走,我需要重新登录,因为我没有存储“authData”对象。
我该怎么做?
非常感谢
答案 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)
}
}