2016-09-09 14 views
4

간단한 작업을 수행하여 Firebase에서 값을 얻으려고합니다. 아래 이미지를 관련 화면과 함께 추가했습니다. 하나 이상의 인쇄 명령이 콘솔에 메시지를 인쇄해야하지만 작동하지 않습니다. 나는 지금 1,5 일 동안 그것을 고치려고 노력하고 있었고 나는 아직도 그것이 작동하지 않는 이유를 모른다.Firebase, Swift : 데이터를 가져올 수 없습니다.

코드 :

import UIKit 
import Firebase 

class MainVC: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let ref = FIRDatabase.database().reference() 

     ref.child("zonneschijn").observeSingleEventOfType(.Value, withBlock: { snapshot in 
      if snapshot.value is NSNull { 
       print("Does not exist currently") 
      } else { 
       print("Exists currently") 
      } 

     }) 
    } 
} 

은 또한 어떤 succes에 함께 또한, viewDidAppear을 사용하려고했습니다.

답변

5

Image with the relevant screens 당신이 당신의 사용자를 인증하지 않는 경우

.

Rules 탭은 Firebase 콘솔의 Realtime Database에 있습니다.

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

    } 
} 

인증 된 의미 사용자 (에 하나의 Gmail, 페이스 북, gitter 서명 한 그 사용자는 email..etc) 읽을 수 있습니다 : - 중포 기지의

기본 보안 규칙은 다음과 같이 있습니다 또는 데이터 쓰기 ... 분명히 사용자를 인증하지 않으므로 이러한 기본 보안 규칙을 사용하여 데이터를 검색 할 수 없습니다.

당신이, 어쨌든 데이터를 읽을 여기에 보안 규칙을 수정하려면 보안이 잘 더로이의 DB에 액세스 할 수있는 인증 된 허용 사용자에게 좋습니다 : -

경고을 : - 권장하지 않음 일부 개인 DB가있는 앱을 만드는 경우.

// These rules give anyone, even people who are not users of your app, 
    // read and write access to your database 

    { 
     "rules": { 
     ".read": true, 
     ".write": true 
     } 
    } 

더 나은 대안 : - 사용자의

읽기를 수행합니다 Security Rule's

+0

흠 아직도 인쇄되지 않습니다. 나는 권장되지 않는 코드를 적용했습니다. 또한 사용자 계정을 사용하지 않고 있는데 이는 기본 화면에 대한 단순한 작업이기 때문입니다. 특히 로그인하는 것은 의미가 없습니다. –

+1

내 답변이 업데이트되었으므로 다음을 시도해보십시오. - https://firebase.google.com/docs/database/security/quickstart – Dravidian

+0

'실제'부분이 작동합니다. 마침내 작동합니다. 앞으로도 잘 알겠습니다. Dravidian에 감사드립니다. 의미심장하다. –

관련 문제