Как отсортировать FireBase порядок по возрастанию, используя querySnapshot в Swift - PullRequest
0 голосов
/ 04 апреля 2020

Я новичок в Swift и работаю с FireBase. Я получаю данные, но не в правильном порядке. Я хочу отсортировать его в порядке возрастания. Мой код выглядит так:

 func getBuzz(){
           db.collection("tablename").getDocuments { (querySnapshot, err) in
               if let err = err {
                   print("Error getting documents: \(err)")
               } else {
                   guard let docs = querySnapshot?.documents else {
                   return
               }
               print(docs)

               for document in docs {
                self.arrdescriptionbuzz.append(document["description"] as Any)
                self.arrimagebuzz.append(document["image"] as Any)
                self.arrnumericdigitbuzz.append(document["numeric_digit"] as Any)
                self.arrtitlebuzz.append(document["title"] as Any)
                self.arrlinkbuzz.append(document["link"] as Any)

               }
                for (index, element) in self.arrimagebuzz.enumerated() {
                    print("get Index \(index): getString \(element)")
                        let url = NSURL(string:element as! String)
                        if !(url?.absoluteString == "") {
                            let data = NSData(contentsOf: url! as URL) //make sure your image in this url does exist, otherwise unwrap in a if let check
                            if !(data?.isEmpty ?? true){
                                self.arrimagenewbuzz.append(UIImage(data: data! as Data) ?? UIImage (named: "Default.jpeg")!)
                            }else{
                                self.arrimagenewbuzz.append(UIImage (named: "Default.jpeg")!)
                            }
                        }

                }


                print("Data = ", self.arrimagenewbuzz.count)
                print("Image = ",self.arrimagebuzz.count)
                print("Title = ",self.arrtitlebuzz.count)
                print("Description = ",self.arrdescriptionbuzz.count)


                self.BuzzCollectionView.reloadData()
           }
       }
    }

Я хочу отфильтровать его в соответствии с документом, как показано на рисунке 10 после 1, и я получаю те же данные в быстром. Но я хочу отсортировать документ так, чтобы я получил 1,2,3 ... enter image description here

Как быстро отсортировать документ. Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

Вы пробовали метод sort на коллекциях? например:

docs.sorted { $0["some_value"] as! Int > $1["some_value"] as! Int }
0 голосов
/ 04 апреля 2020

Вы пробовали использовать метод filter? Добавление метода в ссылку на базу данных поможет вам отсортировать данные без сортировки с внешней стороны iOS

Зависит от того, какую базу данных вы используете для Firebase

База данных реального времени: https://firebase.google.com/docs/database/ios/lists-of-data#sorting_and_filtering_data Магазин огня: https://firebase.google.com/docs/firestore/query-data/order-limit-data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...