我尝试执行一项简单的任务,从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,也没有成功。
答案 0 :(得分:5)
如果您未对用户进行身份验证,
转到Firebase控制台中Rules
的{{1}}标签。
firebase的默认安全规则是这样的: -
Realtime Database
这意味着只有经过身份验证的用户(那些已使用gmail,Facebook,gitter,email..etc登录的用户)可以读取或写入数据... 很明显,您没有对用户进行身份验证,这就是为什么您无法使用这些默认安全规则检索任何数据的原因。
这是一种很好的做法,只允许经过身份验证的用户访问数据库,因为它更安全。如果您想要读取数据,请将安全规则修改为: -
警告: - 不推荐如果您正在制作具有私人数据库的应用。
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
更好的选择: -
请阅读:Security Rule's