Ios 从Firebase将图像URL追加到数组

Ios 从Firebase将图像URL追加到数组,ios,swift,firebase,Ios,Swift,Firebase,我想检索特定用户的图像并将其附加到空数组中,以便将图像显示到集合视图中。每次我都会收到一个错误,图像URL显示在调试器中,但它总是崩溃。我不确定返回零的是什么,我无法让它们显示在我的收藏视图中。 似乎您正在尝试迭代字典的值,然后将该值转换为字典,而实际上它是一个字符串。请尝试以下代码: Database.database().reference().child("User").child(user.uid).child("images").observe(.value) { (snapsho

我想检索特定用户的图像并将其附加到空数组中,以便将图像显示到集合视图中。每次我都会收到一个错误,图像URL显示在调试器中,但它总是崩溃。我不确定返回零的是什么,我无法让它们显示在我的收藏视图中。


似乎您正在尝试迭代字典的值,然后将该值转换为字典,而实际上它是一个
字符串。请尝试以下代码:

Database.database().reference().child("User").child(user.uid).child("images").observe(.value) { (snapshot) in
    if snapshot.exists() {
        let imageInfo = snapshot.value as! [String : String]

        for (imageName, imageURL) in imageInfo { // Iterates over each key-value pair
            self.imagesArray.append(imageURL)
        }

        self.pagerView.reloadData()
    } else {
        print("No Images")
    }
}

当数据强制转换为
字符串时,似乎发生了错误(
[“images”]as!String
)。这意味着
userObject[“images”]
的值要么是
nil
要么不是字符串。如果将userObject的类型转换为
[String:String]
,是否仍会出现错误?是,它仍会出现错误。即使调试器中显示了图像url,您是否可以编辑您的问题以包含您的数据库结构?我认为这将有助于解决问题。这对有图像的用户有效!但是,对于没有图像的配置文件,它会在这一行崩溃:让imageInfo=snapshot.value为![String:String]//无法将类型为“NSNull”(0x1b393b588)的值强制转换为“NSDictionary”(0x1b393b128)。2018-05-11 17:05:13.789162 pinkPageVersion2[9951:2728670]无法将类型为“NSNull”(0x1b393b588)的值强制转换为“NSDictionary”(0x1b393b128)。好的,改为尝试此操作。此版本不会生成,错误是使用未解析的标识符“imageInfo”,条件绑定的初始值设定项必须具有可选类型,而不是“[String:String]”,应为“{if'条件之后的'if'
Database.database().reference().child("User").child(user.uid).child("images").observe(.value) { (snapshot) in
    if snapshot.exists() {
        let imageInfo = snapshot.value as! [String : String]

        for (imageName, imageURL) in imageInfo { // Iterates over each key-value pair
            self.imagesArray.append(imageURL)
        }

        self.pagerView.reloadData()
    } else {
        print("No Images")
    }
}