Ich implementiere meine Login-Logik mit Firebase mit nur Facebook als Anbieter.Bewährte Methode zum Speichern von CurrentUser nach dem Anmelden
Wie kann ich meine CurrentUser
nach der Anmeldung speichern, um später persönliche Daten während der App-Erfahrung zu verwenden?
Im Moment verwende ich ein Singleton mit einer Instanz von User
. Etwas wie folgt aus:
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
}
}
Und ich bin mit, dass Singletons auf diese Weise:
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)
}
...
}
ich nicht tun denke, das ist die beste Praxis. Vor Firebase bin ich es gewöhnt, mit der integrierten Benutzerlogik von Parse umzugehen, das war ziemlich einfach.