Я следовал этому учебнику для выполнения запросов из Firebase firestore
Пока у меня был только один тип объекта Примечание все в порядке.
Это моя объектная структура:
protocol DocumentSerializable {
init?(dictionary:[String:Any])
}
struct Note {
var title:String
var date:Date
var text:String
var type:String
var dictionary:[String:Any] {
return [
"title":title,
"date":date,
"text":text,
"type":type,
]
}
}
extension Note : DocumentSerializable {
init?(dictionary: [String : Any]) {
guard let title = dictionary["title"] as? String,
let date = dictionary["date"] as? Date,
let text = dictionary["text"] as? String,
let type = dictionary["type"] as? String else {return nil}
self.init(title: title, date: date, text: text, type: type)
}
Я создал другую структуру Задача с тем же протоколом и другими свойствами, но я не знаю, как отобразить ее вместе с другой структурой, чтобы иметь в том же массиве Примечание и Задача
var db:Firestore!
var itemsArray = [Note]() //How can I add the tasks too?
func loadData() {
db.collection("items").order(by: "date", descending: true).getDocuments() {
querySnapshot, error in
if let error = error {
print("\(error.localizedDescription)")
} else {
//HERE!
self.itemsArray = querySnapshot!.documents.compactMap({Note(dictionary: $0.data())})
DispatchQueue.main.async {
self.collectionView.reloadData()
}
}
}
}
Спасибо!