我正在使用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) 我很擅长使用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)