我在我的可可豆荚中安装了Firebase / Database,在我的AppDelegate中配置了它,导入了我的Google plist,将读写权限设置为true,并且在viewDidLoad()中,我写了
let rootRef = Database.database().reference()
rootRef.child("users").setValue(["name": "Ryan"])
rootRef.child("users").observe(.value) { (snapshot) in
print(snapshot)
}
问题是,它打印出来了
Snap (users) {
username = Ryan;
}
但是,我没有看到我的实时数据库中的变化,所以如果我摆脱
rootRef.child("users").setValue(["name": "Ryan"])
并重新运行该程序,没有任何结果。
在我的数据库中,如果我在我的根目录下添加一个键值对,比如“Yo”:“hey”
并做一个观察事件
rootRef.child("yo").observe(.value) { (snapshot) in
print(snapshot)
}
什么都没有出来
我很确定我的firebase服务已连接,因为我的用户身份验证有效,但我的数据库没有。有人可以帮帮我吗!
因为它不是孩子。
["yo":"hey"]
是一个字典数据结构。码:
rootRef.child("loginwithgooddesignpractice").observe(.value) { (snapshot) in
print(snapshot)
}
您可能遇到的问题可能源于了解Firebase数据库的结构。在你的情况下,根被很好地引用,但是从那里它没有很好地组织。创建root / users / id / yo:“嘿”结构我建议把它写成:
rootRef.child("users").childByAutoId().setValue("hey", forKey: "yo")
这种方式将用户放在一个字典中,该字典将保存其他用户的多个唯一id,这是另一个字典,其中包含值yo:“hey”。