Добавить изображения URL в массив из Firebase - PullRequest
0 голосов
/ 12 мая 2018

Я хочу получить свои изображения для конкретного пользователя и добавить их в пустой массив, чтобы я мог отобразить изображения в виде коллекции. Я получаю сообщение об ошибке каждый раз, URL-адреса изображения отображаются в отладчике, но он всегда падает. Я не уверен, что возвращается ноль, и я не могу заставить их отображаться в моем представлении коллекции.
ошибка
База данных

 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 голосов
/ 12 мая 2018

Кажется, что вы пытаетесь перебрать значения словаря, а затем преобразовать значение в словарь, когда оно на самом деле 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")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...