gia*_*oli 6 singleton facebook login firebase swift
我正在使用Firebase 实现我的登录逻辑,只有Facebook作为提供者.
如何CurrentUser在登录后保存我以便在以后的应用体验中使用个人数据?
目前我正在使用带有实例的单例User.像这样的东西:
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
}
}
Run Code Online (Sandbox Code Playgroud)
而我正在以这种方式使用那个单身人士:
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)
}
...
}
Run Code Online (Sandbox Code Playgroud)
我不认为这是最好的做法.在Firebase之前,我习惯于处理Parse内置用户逻辑,这非常容易.
小智 2
我面临着确切的问题,这个链接有很大帮助: http ://totallyswift.com/ios-app-development-part-2/
他所做的是创建一个符合 User 类的单例(currentUser)。
class var currentUser: User
{
struct Static
{
static var instance: User?
}
if Static.instance == nil
{
if let load: AnyObject = NSUserDefaults.standardUserDefaults().objectForKey(kUserDataKey)
{
Static.instance = User(data: load as [String: AnyObject])
}
else
{
Static.instance = User()
}
}
return Static.instance!
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1824 次 |
| 最近记录: |