小编gia*_*oli的帖子

登录后存储CurrentUser的最佳做法

我正在使用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! …
Run Code Online (Sandbox Code Playgroud)

singleton facebook login firebase swift

6
推荐指数
1
解决办法
1824
查看次数

用户位置的GeoFire查询

我很擅长使用Firebase及其位置库GeoFire.目前我在构建数据时遇到了一些问题.

目前我的数据库是这样的:

users
  facebook:xxxxx
    displayName: xx
    firstName: xx
    lastName: xx
    location:
      g: xxxx
      l:
        0: xxx
        1: xxx
  facebook:yyyyy
    displayName: yy
    firstName: yy
    lastName: yy
    location:
      g: yyyy
      l:
        0: yyy
        1: yyy
Run Code Online (Sandbox Code Playgroud)

我想查询当前用户附近的用户登录.为此,我无法理解我必须指定的路径.

目前我正在这样做(但这不起作用):

保存当前位置

let root = Firebase(url: "myapp.firebaseio.com")
let usersRoot = root.childByAppendingPath("users")
geoFire = GeoFire(firebaseRef: usersRoot.childByAppendingPath(root.authData.uid))

geoFire.setLocation(currentLocation, forKey: "location") { (error) in
   if (error != nil) {
      print("An error occured: \(error)")
   } else {
      print("Saved location successfully!")
   }
}
Run Code Online (Sandbox Code Playgroud)

检索附近的其他用户

let geoFire = GeoFire(firebaseRef: Firebase(url: "myapp.firebaseio.com").childByAppendingPath("users"))
let …
Run Code Online (Sandbox Code Playgroud)

ios firebase swift geofire

5
推荐指数
1
解决办法
5439
查看次数

标签 统计

firebase ×2

swift ×2

facebook ×1

geofire ×1

ios ×1

login ×1

singleton ×1