Tôi đang triển khai đăng nhập-logic bằng Firebase chỉ với Facebook làm nhà cung cấp.Thực hành tốt nhất để lưu trữ Người dùng hiện tại sau khi đăng nhập
Tôi làm cách nào để có thể lưu CurrentUser
sau khi đăng nhập để sử dụng dữ liệu cá nhân trong trải nghiệm ứng dụng sau này?
Hiện tại tôi đang sử dụng một bản đơn có phiên bản User
. Một cái gì đó như thế này:
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
}
}
Và tôi đang sử dụng mà singleton theo cách này:
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)
}
...
}
tôi không nghĩ rằng đây là thực hành tốt nhất. Trước Firebase, tôi đã quen với việc xử lý logic người dùng dựng sẵn của Parse, điều đó khá dễ dàng hơn.