2016-09-09 20 views
4

Firebaseから値を取得するための簡単な作業をしようとしています。 以下の画像を関連する画面とともに追加しました。少なくとも1つの印刷コマンドがコンソールにメッセージを出力する必要がありますが、動作していません。私は今、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") 
      } 

     }) 
    } 
} 

私もまた、無大成功で、viewDidAppearを使用することを試みました。

Image with the relevant screens

答えて

5

あなたは、ユーザーの認証されていない場合。

Rulesのタブには、Realtime DatabaseのFirebaseコンソールがあります。

firebaseの

デフォルトのセキュリティルールはこのようなものです: -

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

    } 
} 

認証されたユーザーのみを(のいずれかでのGmailで署名されたそれらのユーザーの、Facebookの、ギッター、email..etc)を読むことができることを意味またはデータを書き込む... 明らかに、これらのデフォルトのセキュリティルールでデータを取得することができないため、ユーザーを認証していません。

にのみ、あなたが、とにかくデータを読みこれにセキュリティルールを変更したいsecure.If以上であると、認証済みのユーザーは、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 
     } 
    } 

より良い代替手段は: -

にアクセス

+0

まだ印刷されていないので、私はNot Recommendedコードを適用しました。 また、メイン画面用の単純なタスクなので、私はユーザーアカウントを使用していません。特にログインするのは意味がありません。 –

+1

私の答えが更新されました。探してみてください: - https://firebase.google.com/docs/database/security/quickstart – Dravidian

+0

「真の」部分はそれを動作させます。それで、それはついに、動作します!今から知っておいてよかった。あなたの時間Dravidianに感謝します。大丈夫です。 –

関連する問題