Firebase权限被拒绝Swift 3

Posted

技术标签:

【中文标题】Firebase权限被拒绝Swift 3【英文标题】:Firebase Permission Denied Swift 3 【发布时间】:2016-12-17 22:01:12 【问题描述】:

我正在尝试读取通过其 uid 值分配给特定用户的数据,但我的权限被拒绝。

有人知道我收到此错误的原因吗?

import UIKit
import Firebase

  class ViewController: UIViewController 
  // dataChild value  == User UID as in console.firebase.google.com
 var dataChild = "xd5rwZzUqoRbfMp2rq5pTRB3s1"
    var dbRef:FIRDatabaseReference! // reference to Firebase

 override func viewDidLoad() 
      super.viewDidLoad()
       dbRef = FIRDatabase.database().reference().child("Users")
           startObservingDB()

func startObservingDB() 
    dbRef.child(dataChild).observe(.value, with:  (snapshot: FIRDataSnapshot) in
        print("The snapshot is \(snapshot.value)") //no longer prints

    , withCancel:  (Error:Any) in
        print("Error is \(Error)") //prints Error is Error Domain=com.firebase Code=1 "Permission Denied" 
    )
   // end of startObservingDB()


Firebase Json 树


"Users" : 
   "xd5rwZzUqoRbfMp2rq5pTRB3s1" : 
       "718565122" : 
        "BookingAmount" : "12",
        "BookingNumber" : "718565122",
        "DateAndTime" : "Mon, 26 Sep 2016 18:30",
        "EmailAddress" : "1@gmail.com",
        "FlatNumber" : "10",
        "FrequecyAmount" : 48,

Firebase 规则


  "rules": 
     ".read": "auth != null",
     ".write": "auth != null"
  

【问题讨论】:

这意味着您没有读取数据的权限。阅读有关为您的应用设置安全规则的 Firebase 文档以了解所有相关信息:firebase.google.com/docs/database/security。 @FrankvanPuffelen 每次我在数据库中保存数据时,它的格式都是用户/Uid /数据的第一个节点,例如 718565122。Uid 是通过 Firebase 身份验证获得的用户 ID。鉴于我在路径中使用了有效的 uid,firebase 应考虑用户已通过身份验证并允许我读取其数据。我也用安全规则更新了我的问题。 【参考方案1】:

我忘记在我的 swift 文件中添加 pod 'Firebase/Auth'import FirebaseAuth 的 pod。这就是我无法使用有效 uid 读取 firebase 数据库的原因。

【讨论】:

以上是关于Firebase权限被拒绝Swift 3的主要内容,如果未能解决你的问题,请参考以下文章

当observeSingleEvent时Swift Firebase规则权限被拒绝

Firebase 权限被拒绝

Firebase 权限被拒绝错误

Firebase 注销显示权限被拒绝错误。

Firebase 规则 - 权限被拒绝

无法上传到 Firebase 存储/权限被拒绝