извлекать записи из coredata и отправлять их на Firebase в Swift

У меня есть контроллер представления корзины, который содержит несколько элементов, которые поступают из coredata, когда клиент щелкает, чтобы оформить заказ, он переходит к контроллеру представления счетов, который отправляет данные элементов в firebase после того, как пользователь нажимает кнопку placeOrder.

Этот код для перемещения элементов из первого контроллера представления во второй:

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let destination = segue.destination as! CheckoutViewController
    destination.arrayItem = arrayProduct
}

Теперь во втором контроллере представления я получаю запись из coredata:

  func fetchRecordCartFromDatabase(){
                let context = objAppDelegate.persistentContainer.viewContext
                let fetchRequest = NSFetchRequest<NSFetchRequestResult>.init(entityName: "Cart")

                do{
                    result = try context.fetch(fetchRequest) as! [NSManagedObject]
                    for data in result{

                        let obj = userNSObj()
                        obj.productID = data.value(forKey: "id") as! String
                        obj.uid = data.value(forKey: "uid") as! String
                        obj.productName = data.value(forKey: "name") as! String
                        obj.productPrice = data.value(forKey: "price") as! Double
                        arrayCart.append(obj)

                    }
                }catch{
                     print("Failed")
                }
            }

Есть ли способ сохранить данные в фоновом режиме, и когда пользователь размещает свой заказ, массив присваивается каждому продавцу, чтобы этот покупатель покупал у него конкретный товар, не извлекая данные, потому что я уже переместил данные с помощью массива?

Здесь я пытаюсь отправить данные в firebase, чтобы позже получить их как историю.

  func sendDataToFirebase(){
    let invoiceID = self.ref.childByAutoId().key
    let userID = Auth.auth().currentUser?.uid

    let invoice = [
        "invoiceID" : invoiceID,
         "uid" : userID,

        ] as [String : Any]
    self.ref.child("invoice").child(id).child("Items").setValue(arrayCart)

}

Я получил сообщение об ошибке: (setValue:) Невозможно сохранить объект типа _erfa.userNSObj в 0. Могут храниться только объекты типа NSNumber, NSString, NSDictionary и NSArray.'

0 ответов

Другие вопросы по тегам