将图片URL附加到Firebase中的数组

时间:2018-05-11 22:55:17

标签: ios swift firebase

我想为特定用户检索我的图像并将它们附加到一个空数组中,这样我就可以将图像显示到集合视图中。我每次都收到一个错误,图像网址显示在调试器中,但它总是崩溃。我不确定什么是返回nil,我不能让它们显示在我的集合视图中  error
Database

 var imagesArray: [String] = []
  public func numberOfItems(in pagerView: FSPagerView) -> Int {
    return imagesArray.count
}
public func pagerView(_ pagerView: FSPagerView, cellForItemAt index: Int) -> FSPagerViewCell {
    let cell = pagerView.dequeueReusableCell(withReuseIdentifier: "cell", at: index)
    cell.imageView?.loadImageUsingCacheWithUrlString(urlString: imagesArray[index])
    return cell
}
 func getImages(){
    Database.database().reference().child("User").child(user.uid).child("images").observe(.value) { (snapshot) in
        print(snapshot)
        if snapshot.childrenCount > 0 {
            for users in snapshot.children.allObjects as! [DataSnapshot] {
                let userObject = users.value as? [String: AnyObject]
              //  let image  = userObject?["images"]

               // print(image)
                self.imagesArray.append(userObject?["images"] as! String)
            }

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

}

1 个答案:

答案 0 :(得分:0)

看起来您正在尝试迭代字典的值,然后在实际为String时将值转换为字典。请尝试使用此代码:

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")
    }
}