【发布时间】:2019-04-06 22:54:00
【问题描述】:
我是一名新的 Swift 开发人员。我正在使用 Swift 4.2 和 Xcode 10.1。
我正在尝试从 firebase 快照创建字符串数组。我可以通过设置结构模型并使用初始化程序来做到这一点,但是当我想直接在代码中执行此操作而不使用单独的结构时,它不起作用。这是我的代码:
// Get the likers
dbRef.child("likers").observeSingleEvent(of: .value) { snapshot in
// Declare an array to hold the Likers
var retrievedLikers = [String]()
// Loop through the retrieved likers and put into the array
for child in snapshot.children {
let snap = child as! DataSnapshot
let dict = snap.value as! [String:Any]
let likerId = dict["userId"] as? String ?? ""
print (likerId)
retrievedLikers.insert(likerId, at: 0)
}
likers = retrievedLikers
}
我的 firebase 数据模型如下所示:
我尝试了几种方法。上面的代码是基于另一个 SO 建议的最新代码。
问题是我无法使用 snap.value 创建字典。 Snap 有正确的数据。我收到一条错误消息,提示“无法将 '__NSCFString' 类型的值大小写为 'NSDictionary'。但快照显示为字典。这是一个屏幕截图:
任何帮助将不胜感激。我已经尝试了 3 个小时来解决这个问题。
【问题讨论】:
标签: swift firebase firebase-realtime-database