Извлечь количество документов Firestore из запроса для использования в количестве ячеек UIcollectionView, Swift 4.0 - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть контроллер представления, в котором мне нужно получить количество документов, чтобы я мог генерировать и точное количество ячеек в UIcollectionView.Проблема, с которой я столкнулся, заключается в том, что я никогда не смогу получить счетчик до того, как он будет использован методом источника данных UIcollectionview.Это всегда возвращает ноль.

Существует ли общий способ заставить код получить это число и передать его методу UIcollectionviewDatasource, прежде чем он сможет вернуть нулевое значение?

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

            override func viewDidLoad() {
                    super.viewDidLoad()


         itemEntryRef.order(by: "_id", descending: false).getDocuments() {(querySnapshot, err) in
                    print("query attempted")


                    if let err = err {
                        // There was an error
                        print("query failed")
                        print(err)

                    } else {

                        print("query successful")

                        print(querySnapshot!.count)
                        self.itemCount = querySnapshot!.count

                    }
            }

     //UIcollectionView DataSource
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

            return self.itemCount
        }

        func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
            let cell = ledgerCollectionView.dequeueReusableCell(withReuseIdentifier: testString, for: indexPath)
            cell.backgroundColor = UIColor(named: "translucent")
            cell.layer.borderWidth = 0.5

            return cell
        }
...