Firebase Geofire的许可被拒绝

时间:2017-09-20 02:46:30

标签: swift firebase firebase-realtime-database geofire

我使用Firebase Geofire获取用户位置以将其存储在我的数据库中。我尝试运行查询时遇到错误:

Listener at /RDio5CZF2fcJTUOcaeNJhuvYP2Q2 failed: permission_denied 2017-09-19 22:34:24.809 HeartQuest[26419] <Warning> [Firebase/Database][I-RDB038012] Listener at /RDio5CZF2fcJTUOcaeNJhuvYP2Q2 failed: permission_denied An error occurred getting the location for "firebase-hq": Optional("Permission Denied")

运行以下查询后发生错误:

    let userID = User.current?.key
    let geofireRef = Database.database().reference()
    let geoFire = GeoFire(firebaseRef: geofireRef)
    geoFire?.getLocationForKey(userID!, withCallback: { (location, error) in
        if (error != nil) {
            print("An error occurred getting the location for \"firebase-hq\": \(error?.localizedDescription)")
        } else if (location != nil) {
            print("Location for \"firebase-hq\" is [\(location?.coordinate.latitude), \(location?.coordinate.longitude)]")
        } else {
            print("GeoFire does not contain a location for \"firebase-hq\"")
        }
    })
}

任何人都可以解释一下位置键是什么以及为什么我可能没有它的权限?我使用CLLocationManager申请用户对其手机位置的许可。

编辑:Firebase规则

{
  "rules": {
    ".validate": "auth != null",
    ".write": "auth != null",
    "users" : {
      ".read": "auth != null",
      ".indexOn" : ["email","username"],
      "$userId": {
        ".write": "data.val() == null || (newData.val() == null && $userId === auth.uid)"
      }
    }
  }
}

0 个答案:

没有答案