Firebase,Swift:无法检索数据

Fab*_*ter 4 ios firebase swift firebase-realtime-database

我正在尝试执行一项简单的任务,从Firebase获取值.我在下面添加了相关屏幕的图片.至少有一个打印命令应该向控制台打印一条消息,但它不起作用.我一直试图修复它1.5天,我仍然不知道它为什么不起作用.

码:

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")
            }

        })
    }
}
Run Code Online (Sandbox Code Playgroud)

我也试过使用viewDidAppear,也没有成功.

带有相关屏幕的图像

Dra*_*ian 5

如果您没有验证您的用户身份.

转到Firebase控制台中的Rules选项卡Realtime Database.

firebase的默认安全规则是这样的: -

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

   }
}
Run Code Online (Sandbox Code Playgroud)

这意味着只有经过身份验证的用户(那些已经使用gmail,Facebook,gitter,email..etc登录的用户)可以读取或写入数据......显然,您没有对用户进行身份验证,这就是您无法检索任何数据的原因这些默认安全规则.

这是一个很好的做法,只允许经过身份验证的用户访问数据库,因为它更安全.如果您想要读取数据,请将安全规则修改为: -

警告: - 不推荐,如果你正在应用程序,有一些私人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
      }
    }
Run Code Online (Sandbox Code Playgroud)

更好的选择: -

请阅读: 安全规则