Sto implementando la mia logica di login utilizzando Firebase con solo Facebook come provider.Procedura consigliata per archiviare CurrentUser dopo l'accesso
Come posso salvare il mio CurrentUser
dopo il login per poter utilizzare i dati personali durante l'esperienza dell'app in seguito?
Al momento sto utilizzando un singleton con un'istanza di User
. Qualcosa di simile a questo:
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
}
}
e sto usando che Singleton in questo modo:
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)
}
...
}
non lo faccio pensa che questa sia la migliore pratica. Prima di Firebase sono abituato ad avere a che fare con la logica utente integrata di Parse, che è stato molto più semplice.