Firebase,Swift:无法检索数据

时间:2016-09-09 11:38:12

标签: ios swift firebase 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")
            }

        })
    }
}

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

Image with the relevant screens

1 个答案:

答案 0 :(得分:5)

如果您未对用户进行身份验证,

转到Firebase控制台中Rules的{​​{1}}标签。

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

Realtime Database

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

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

警告: - 不推荐如果您正在制作具有私人数据库的应用。

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

   }
}

更好的选择: -

请阅读:Security Rule's