为什么 NSUserDefaults 不适用于 Firebase
Why NSUserDefaults does not work with Firebase
我正在使用 Firebase
登录并使用 NSUserdefaults
保存 uid
所以下次可以自动登录。但是不知道为什么不起作用。下面是我的代码:
// let's say path is the route down to "users" in Firebase
@IBAction func loginPressed(sender: AnyObject) {
if let email = emailField.text where email != "", let password = passwordField.text where password != "" {
FIRAuth.auth()?.signInWithEmail(email, password: password, completion: { (user, err) in
if err != nil {
print(err)
} else {
NSUserDefaults.standardUserDefaults().setValue(user!.uid, forKey: "uid")
path.child("\(user!.uid)/category").observeSingleEventOfType(.Value, withBlock: { (snapshot) in
if let userCategory = snapshot.value as? String {
if userCategory == "seller" {
self.performSegueWithIdentifier(segueSellerVC, sender: self)
} else {
self.performSegueWithIdentifier(segueCustomerVC, sender: self)
}
}
})
}
})
}
}
Swift 3
节省
UserDefaults.standard.set(FIRAuth.auth()!.currentUser!.uid, forKey: "uid")
UserDefaults.standard.synchronize()
正在检索
let storagePath = UserDefaults.standard.object(forKey: "uid") as? String
Swift 2
节省
NSUserDefaults.standardUserDefaults().setObject(FIRAuth.auth()!.currentUser!.uid, forKey: "uid")
NSUserDefaults.standardUserDefaults().synchronize()
正在检索
let storagePath = NSUserDefaults.standardUserDefaults().objectforKey("uid") as? String
Swift 3
UserDefaults.standard.setValue(user!.uid, forKey: "uid")
我正在使用 Firebase
登录并使用 NSUserdefaults
保存 uid
所以下次可以自动登录。但是不知道为什么不起作用。下面是我的代码:
// let's say path is the route down to "users" in Firebase
@IBAction func loginPressed(sender: AnyObject) {
if let email = emailField.text where email != "", let password = passwordField.text where password != "" {
FIRAuth.auth()?.signInWithEmail(email, password: password, completion: { (user, err) in
if err != nil {
print(err)
} else {
NSUserDefaults.standardUserDefaults().setValue(user!.uid, forKey: "uid")
path.child("\(user!.uid)/category").observeSingleEventOfType(.Value, withBlock: { (snapshot) in
if let userCategory = snapshot.value as? String {
if userCategory == "seller" {
self.performSegueWithIdentifier(segueSellerVC, sender: self)
} else {
self.performSegueWithIdentifier(segueCustomerVC, sender: self)
}
}
})
}
})
}
}
Swift 3
节省
UserDefaults.standard.set(FIRAuth.auth()!.currentUser!.uid, forKey: "uid")
UserDefaults.standard.synchronize()
正在检索
let storagePath = UserDefaults.standard.object(forKey: "uid") as? String
Swift 2
节省
NSUserDefaults.standardUserDefaults().setObject(FIRAuth.auth()!.currentUser!.uid, forKey: "uid")
NSUserDefaults.standardUserDefaults().synchronize()
正在检索
let storagePath = NSUserDefaults.standardUserDefaults().objectforKey("uid") as? String
Swift 3
UserDefaults.standard.setValue(user!.uid, forKey: "uid")