所以我在swift中构建这个应用程序,其中包含应在用户登录前读取的数据。
为了防止它被我的应用程序读出,我提出了基本的安全规则:
".read": "auth != null"
为了防止在登录前阅读,我在调用时设置了一个加载视图控制器:
func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {
let ref = Firebase(url: "<my firebase url>")
ref.observeAuthEventWithBlock({ authData in
if authData != nil {
segueToListViewController()
}
})
return true
}
但是当我达到这一点时,有时候firebase会给我“拒绝许可”错误,有时它不会。
我确定有一个已登录的用户,因为我正在记录所有内容:
那么为什么Firebase有时会在用户登录时拒绝阅读?
答案 0 :(得分:2)
我参加这个派对的时间已经很晚了,但如果你将.read规则放在一个更高的级别,直接在孩子的名字下,这可能会有所帮助。
例如
{
"rules": {
"users": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid"
}
},
"child": {
".read": "auth != null",
".write": "auth != null",
"$child": {
}
}
}
}