Swift:Firebase读取权限被拒绝

时间:2015-07-30 22:48:40

标签: ios swift permissions firebase denied

所以我在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有时会在用户登录时拒绝阅读?

1 个答案:

答案 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": {
      }
    }
  }
}