【问题标题】:Retrieving data from Firebase in Swift在 Swift 中从 Firebase 中检索数据
【发布时间】:2016-09-22 15:02:18
【问题描述】:

我一直在查看 Firebase 网站上的 API,但是,当我打印我的快照时,我会从我的数据库中获得一切

我试图只打印我刚刚设置的值,这是我的变量:test_person_1

 import UIKit
 import Firebase

 class Test: UIViewController {


override func viewDidLoad() {
        super.viewDidLoad()

    let ref = FIRDatabase.database().reference()



    ref.observeEventType(.ChildAdded, withBlock: { (snapshot) in



        var test_person_1 = ["full_name": "Test 1", "date_of_birth": "June 1, 2000"]
        var Test_person_2 = ["full_name": "Grace Hopper", "date_of_birth": "July 1, 2000"]
                    let usersRef = ref.child("New child")


        usersRef.setValue([test_person_1])


        print(snapshot) //


    })

Json 树:

【问题讨论】:

  • 提供你的 JSON 树。作为文本不是 sn-p

标签: ios swift firebase firebase-realtime-database


【解决方案1】:

到您打印快照时,该值尚未在服务器上设置。

如果您想在数据发送到服务器时打印,请在您的 setValue() 调用中添加所谓的完成侦听器:

usersRef.setValue([test_person_1]) { (error, ref) in
    print(error, ref)
}

如果没有错误,你就知道服务器上的值就是你刚才写的。但是如果你想从服务器读回这个值,你需要为它附加一个监听器:

usersRef.setValue([test_person_1]) { (error, ref) in
    ref.observeSingleEventOfType(.Value) { (snapshot) in
        print ("new value \(snapshot.value)")
    }
}

【讨论】:

  • 感谢您的帮助!如果我想稍后检索数据,而不是准确地在发送数据时检索数据怎么办?在用户在某些文本字段中写入一些输入之后,我正在努力实现这一目标,稍后我将在另一个视图控制器上检索并打印这些输入。
  • 您将在回调之外附加一个带有ref.observeEventOfType() 的侦听器。你读过Firebase documentation on retrieving data 还是读过iOS codelab?两者都很好地涵盖了这些概念。
  • 我确实花了一整天的时间在“检索数据”页面上,但我必须承认我可能有点过头了。对编程来说相当新……所以我能理解它,最后到了这里。感谢您的帮助,我会看看这一切。谢谢
猜你喜欢
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多