ios – Swift:Firebase读取权限被拒绝

所以我在
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会给我“拒绝许可”的错误,有时却没有.

我确定有一个已登录的用户,因为我正在记录所有内容:

>登录已更改
>用户登录AuthData facebook:
> applicationDidBecomeActive
>加载ListViewController
>加载数据
>错误:错误域= com.firebase代码= 1“权限被拒绝”

那么,为什么Firebase有时会在用户登录时拒绝阅读?

最佳答案 我参加这个派对的时间已经很晚了,但是如果你把.read规则放在一个更高的级别,直接在孩子的名字下面,这可能会有所帮助.

例如

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "auth != null && auth.uid == $uid", 
        ".write": "auth != null && auth.uid == $uid"
      }
    },
    "child": {
        ".read": "auth != null",
        ".write": "auth != null", 
      "$child": {
      }
    }
  }
}
点赞