无法使用Swift 4将数据写入Firebase实时数据库

问题描述 投票:1回答:2

我在我的可可豆荚中安装了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”enter image description here

并做一个观察事件

rootRef.child("yo").observe(.value) { (snapshot) in
    print(snapshot)
}

什么都没有出来

我很确定我的firebase服务已连接,因为我的用户身份验证有效,但我的数据库没有。有人可以帮帮我吗!

ios swift firebase firebase-realtime-database
2个回答
0
投票

因为它不是孩子。

["yo":"hey"]是一个字典数据结构。码:

rootRef.child("loginwithgooddesignpractice").observe(.value) { (snapshot) in
    print(snapshot)
}

0
投票

您可能遇到的问题可能源于了解Firebase数据库的结构。在你的情况下,根被很好地引用,但是从那里它没有很好地组织。创建root / users / id / yo:“嘿”结构我建议把它写成:

   rootRef.child("users").childByAutoId().setValue("hey", forKey: "yo")

这种方式将用户放在一个字典中,该字典将保存其他用户的多个唯一id,这是另一个字典,其中包含值yo:“hey”。

© www.soinside.com 2019 - 2024. All rights reserved.