Получение данных из Firebase в ChildByAutoId и добавление в массив - Xcode - Swift - PullRequest
0 голосов
/ 29 января 2020

Вот моя база данных из Firebase:

enter image description here

Я пытаюсь получить данные по всем покупкам и количествам в разделе "Tgb9MyxTfdTRd9tQhInsjNRXoPL2" и добавить в массив.

Вот мой код:

    func fetchPurchase(withUID uid: String, completion: @escaping (Purchase) -> ()) {
        Database.database().reference().child("purchases").child(uid).observeSingleEvent(of: .value, with: { (snapshot) in


        guard let dict = snapshot.value as? [String: Any] else { return }
            print("dict-->", dict)
        let purchase = Purchase(uid: uid, dictionary: dict)
            print("purchase-->", purchase)
        completion(purchase)
    }) { (err) in
        print("Failed to fetch purchase from database:", err)
    }
}

Это распечатка для print("dict-->", dict):

dict--> ["-LzjaFBgD3ATl7e8uR2-": {
purchase = "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0Lzk4OTUzMjEyODM=";
quantity = 1;
}, "-LzjaFBiAmrj4m3ZS8m4": {
purchase = "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0Lzk4OTUzMDk2OTk=";
quantity = 2;
}]

Это распечатка для print("purchase-->", purchase) :

 purchase--> Purchase(uid: "Tgb9MyxTfdTRd9tQhInsjNRXoPL2", purchases: "", quantities: "")

Значение dict содержит данные, которые мне нужны, но я не могу пройти мимо этого, чтобы поместить данные в массив для их отображения?

Как я могу получить покупку и количество данные в свои массивы?

Пожалуйста, помогите!

1 Ответ

1 голос
/ 29 января 2020
    func fetchPurchase(withUID uid: String, completion: @escaping (Purchase) -> ()) {
            Database.database().reference().child("purchases").child(uid).observeSingleEvent(of: .value, with: { (snapshot) in

            if snapshot.childrenCount > 0 {
                self.YourArrayList.removeAll()
                 for dict in snapshot.children.allObjects as! [DataSnapshot]
                    let purchase = Purchase(uid: uid, dictionary: dict)
                    self.YourArrayList.append(purchase)
                }

            }
            completion(purchase)
        }) { (err) in
            print("Failed to fetch purchase from database:", err)
        }
    }

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