Отображение изображений Firebase в массив - PullRequest
0 голосов
/ 11 мая 2018

Я хочу отобразить мои изображения из Firebase в виде моей коллекции. Я не знаю, как получить правильный узел из Firebase для доступа к ветке изображений. У некоторых пользователей будет до 5 изображений, но у некоторых пользователей вообще не будет ветки изображений. Вот моя структура данных Firebase.

enter image description here

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)

    return cell
}

struct Users {
     var email: String!
     var uid: String!
     var ref: DatabaseReference!
     var location: String?
     var photoURL: String!
     var biography: String?
     var key: String?
     var name: String!
     var phoneNumber: NSNumber? 
     var password: String!
}

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

1) взять один массив.

var arrImages: [[String: String]] = []

2) Затем используйте эту функцию, чтобы добраться до узла изображений.

Database.database().child("Users").child(<id>).child("Images").observe(.value) { (snapshot) in
            print(snapshot)
            if snapshot.childrenCount > 0 {
                for users in snapshot.children.allObjects as! [DataSnapshot] {
                    let images = users.value as? Dictionary
                        self.arrImages.append(images)
                    }

                self.collectionView.reloadData()
            }else{
                print("No Images")
            }
        }
0 голосов
/ 11 мая 2018

Вот что вам нужно сделать.

  1. Получить ссылку на узел изображения
    dbImageRef = Database.database().child("Users")
.child("Images")
.observeSingleEvent(of: .value, with: { (snapshot) in

      let value = snapshot.value as! NSDictionary 
       for image in value{


      // add the image links in an image array here
       }
    }
  1. Используйте библиотеку, например Kingfisher, для загрузки и отображения изображений.
...