【问题标题】:Getting the value from Firebase and appending it to an array in Swift?从 Firebase 获取值并将其附加到 Swift 中的数组?
【发布时间】:2020-02-16 20:15:59
【问题描述】:

我刚开始学习 Swift,我正在尝试从实时火力库中的每个孩子那里读取价值。我想将它保存为数组中的字符串。这是我尝试过的:

           self.ref.child("someId/name").observe(.value) { snapshot in

            for child in snapshot.children {
                let snap = child as! DataSnapshot
                let value = snap.value
                self.preis.append(value as! String)
            }
        }

但我总是收到错误消息:线程 1:信号 SIGABRT 在这一行:self.preis.append(value as! String)

我试过了

self.ref.child("someId/name").observe(.value) { 中的快照

            for child in snapshot.children {
                let snap = child as! DataSnapshot
                let value = snap.value
                self.preis.append(snapshot.value as! String)
            }
        }

现在我得到这样的值:Optional(...)

【问题讨论】:

  • 显示 Firebase 结构
  • { "name" : "Joe" }
  • 您是否尝试在应用程序崩溃检查内容之前打印value
  • 我得到 Optional({ name = Joe; })
  • 你可以试试if let name = value?["name"] as? String {self.preis.append(name)}

标签: swift firebase firebase-realtime-database sigabrt


【解决方案1】:

你可以试试

self.ref.child("someId/name").observe(.value) { snapshot in 
   let res = snapshot.value as! String
   print(res)
   self.preis.append(res)
}

【讨论】:

  • 试试这个print(snapshot.value)并分享日志
  • 可选(Joe)如何将其转换为 Joe?
  • 没有数组循环它的 1 个字符串项
猜你喜欢
  • 2017-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-03
  • 2016-10-20
相关资源
最近更新 更多