我的代码:
import Foundation
import Firebase
class UserService {
static var currentUserProfile:UserProfile?
static func observeUserProfile(_ uid:String, completion: @escaping ((_ userProfile:UserProfile?)->())) {
let userRef = Database.database().reference().child("users/profile/\(uid)")
userRef.observe(.value, with: { snapshot in
var userProfile:UserProfile?
if let dict = snapshot.value as? [String:Any],
let username = dict["username"] as? String,
let photoURL = dict["photoURL"] as? String,
let url = URL(string:photoURL) {
userProfile = UserProfile(uid: snapshot.key, username: username, photoURL: url)
}
completion(userProfile)
})
}
}
我的Firebase实时数据库规则是:
{
"rules": {
".read": "auth.uid != null",
".write": "auth.uid != null"
}
}
我在哪里弄错了?
答案 0 :(得分:0)
您登录了吗?您必须先使用类似的方法登录;
FirebaseAuth.getInstance().signInWithEmailAndPassword
或
FirebaseAuth.getInstance().signInAnonymously
或任何其他登录方法。
我不推荐的其他方式(因为它可以访问所有人),如果您想在未经身份验证的情况下使用它,可以更改以下规则;
{
"rules": {
".read": true,
".write": true
}
}
您可以在配置客户端后更改规则。但是请始终考虑规则并根据规则创建表。