swift 4 / firebase超级简单的读/写。看不懂

时间:2018-01-19 18:54:32

标签: ios swift firebase firebase-realtime-database

超级新手!我只想练习Firebase的阅读和写作。我的写代码有效!我在线咨询了几十个例子,仍然无法让读取部分正常工作。

作为一个新手,我也尝试了一些简单的调试技术,但没有帮助。 究竟如何修复此代码以便进行读取(我知道它发生的原因是代码打印到终端)?

我真的很喜欢基于Swift 4的解决方案,谢谢。

My repo

class ViewController: UIViewController {


override func viewDidLoad() {
    super.viewDidLoad()

    var ref:DatabaseReference!
    var refHandle:DatabaseHandle!
    ref = Database.database().reference()
    ref.child("test").setValue("name: Bruce")

//下面没有任何作品

    refHandle = ref.child("test").observe(DataEventType.childAdded, with: { (snapshot) in
        let info = snapshot.value as? String
        print(info as Any)
    })

}

请注意,我的Firebase数据库已启用READ和WRITE。我也试过了observeSingleInsance(或者只读了一次)。

我知道写入有效,因为我可以在Firebase控制台中看到数据

4 个答案:

答案 0 :(得分:0)

当你正在尝试收听子添加时这样读,所以用value替换childAdded,你应该等到写进程发生然后再读,假设再次启动应用程序只读

  refHandle = ref.child("test").observeSingleEvent(of: .value, with: { (snapshot) in
    let info = snapshot.value as? String
    print(info as Any)
})

答案 1 :(得分:0)

转到Firebase控制台,然后执行以下步骤,即图像中标识。

enter image description here

答案 2 :(得分:0)

我相信您的问题出在setValue(“name:Bruce”)中,您将节点“test”设置为“name:Bruce”,而不是“name”:“Bruce” 如果你改变那个说

updateChildValues(["name": "Bruce"])
肯定会有用。

答案 3 :(得分:0)

你启用了吗?然后尝试将其更改为

Database.database().isPersistenceEnabled = false

否则试试这个并打印你得到的快照(你实际上不需要手柄):

ref.child("test").observe(.value, with: { (snapshot) in
    print(snapshot)
})