2016-12-17 12 views
0

특정 사용자에게 할당 된 데이터를 uid 값으로 읽으려고하지만 권한이 거부되었습니다.Firebase Permission Denied Swift 3

누구든지이 오류가 발생하는 이유를 알고 계십니까?

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() 

} 

uid for the corresponding email address that was used to register account

중포 기지 JSON 트리

{ 
"Users" : { 
    "xd5rwZzUqoRbfMp2rq5pTRB3s1" : { 
     "718565122" : { 
     "BookingAmount" : "12", 
     "BookingNumber" : "718565122", 
     "DateAndTime" : "Mon, 26 Sep 2016 18:30", 
     "EmailAddress" : "[email protected]", 
     "FlatNumber" : "10", 
     "FrequecyAmount" : 48, 

중포 기지 규칙

{ 
    "rules": { 
    ".read": "auth != null", 
    ".write": "auth != null" 
    } 
} 
+0

즉, 데이터를 읽을 수있는 권한이 없음을 의미합니다. 앱에 대한 보안 규칙 설정에 관한 Firebase 설명서를 참조하여 https://firebase.google.com/docs/database/security/에 대해 자세히 알아보십시오. –

+0

@FrankvanPuffelen 데이터를 db에 저장할 때마다 데이터의 사용자/Uid/첫 번째 노드 (예 : 718565122)입니다. Uid는 Firebase 인증을 통해 얻은 사용자의 ID입니다. 내 경로에서 유효한 uid를 사용한다는 사실을 감안할 때, firebase는 사용자가 인증되었다고 생각하고 데이터를 읽을 수 있도록해야합니다. 내 질문도 보안 규칙으로 업데이트했습니다. – bibscy

답변

2

나는의 포드를 추가하는 것을 잊었다 내 신속한 파일에및 import FirebaseAuth. 이것이 내가 올바른베이스 카드를 읽을 수없는 이유입니다.