【问题标题】:Firebase Swift String Error childByAppendingPathFirebase Swift字符串错误childByAppendingPath
【发布时间】:2015-05-24 21:21:24
【问题描述】:

使用为 Swift 提供的示例:
https://www.firebase.com/docs/ios/guide/understanding-data.html

我正在尝试按照此示例检索数据并在标签控件中显示值。

这是我所拥有的:

@IBOutlet weak var lblUser: UILabel!

.....

var myRootRef = Firebase(url:"https://docs-examples.firebaseio.com/web/data")

lblUser.text = myRootRef.childByAppendingPath("users/mchen/name")

我收到一个错误

无法将 Firebase 类型的值分配给字符串类型的值

我尝试添加 as? String 时遇到不同的错误。

我错过了什么?

【问题讨论】:

  • 本指南在第 4 步之前不涉及检索值。您调用的 childByAppendingPath 方法返回对 Firebase 数据库中某个位置的引用,该位置的类型为 Firebase。您正在尝试将其分配给字符串,因此出现错误消息。
  • 哦,所以如果我收集正确,则需要一个观察者来检索数据,无论它是单个实例还是观察数据以进行更改。无论哪种方式获取数据我都必须注册一个observeEventType?我相信,可能由于在文档中跳来跳去,“观察者”更多地用于监视。谢谢!
  • Firebase 的数据模型完全围绕监控数据路径的变化而构建。如果没有其他内容,请花 2 分钟时间阅读适用于 iOS 的 Firebase 快速入门的第 5 步:firebase.com/docs/ios/quickstart.html
  • 更好的是,阅读整个指南并为自己节省十几个小时的颠簸。
  • 确实,正在努力。由于这个项目,有点隧道视野。尽管指南第 2 节起初确实暗示代码会在 Swift 中返回“Mary Chen”。在弄清楚类型转换之后已经发生了颠簸,现在是异步问题......

标签: swift firebase


【解决方案1】:

在从 Firebase 数据库中检索数据时,您需要编写如下代码:

        var ref = Database.database().reference(fromURL: "https://docs-examples.firebaseio.com/web/data/")
        ref.child("users").child("mchen").child("name")           
        ref.observeSingleEvent(of: .value, with: { (snapshot) in
            if let name = snapshot.value as? String {
                lblUser.text = name
            }
        })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多