Я создаю приложение для заказа на покупку, и у меня есть табличное представление, показывающее текущий заказ на покупку. Я хотел бы иметь возможность отправить электронное письмо с данными этого заказа на поставку поставщику.
У меня все работает нормально, но я не могу установить тело сообщения для данных из firebase.
Моя база данных Firebase выглядит следующим образом, и я хотел бы извлечь имя, информацию, количество и цену каждого элемента в списке и заполнить электронную почту этими данными.
и вот как я сохраняю данные
func saveItemInBackground(shoppingItem: ShoppingItem, completion: @escaping (_ error: Error?) -> Void) {
let ref = firebase.child(kSHOPPINGITEM).child(shoppingItem.shoppingListId).childByAutoId()
shoppingItem.shoppingItemId = ref.key
ref.setValue(dictionaryFromItem(item: shoppingItem)) { (error, ref) -> Void in
completion(error)
}
}
Я использую этот код для представления электронного письма.
func configureMailController() -> MFMailComposeViewController {
let mailComposerVC = MFMailComposeViewController()
mailComposerVC.mailComposeDelegate = self
firebase.child(kSUPPLIEREMAIL).child(FUser.currentId()).child("SupplierEmail").observe(.value, with: {
snapshot in
if snapshot.exists() {
let toEmail = snapshot.value
mailComposerVC.setToRecipients(["\(toEmail as! String)"])
mailComposerVC.setSubject("New EDM Pro Purchase Order")
mailComposerVC.setMessageBody("", isHTML: false)
} else {
self.showMailError()
}
})
return mailComposerVC
}
и мне было интересно, смогу ли я использовать функцию для установки тела письма, а затем вызвать функцию в строке mailComposerVC.setMessageBody("", isHTML: false)
В качестве альтернативы, если это невозможно, я мог бы создать PDF таблицы и приложить ее к электронному письму. Я не уверен, как это можно сделать.
Любая помощь в этом была бы потрясающей!