Я получаю список массивов из базы данных Firestore и добавляю, к следующей переменной:
var productTags : [String : [String]] = [:]
Это мой код для получения данных и добавления их в переменную productTags
:
db.collection(DatabaseRef.searchTags).document(DatabaseRef.productTags).getDocument { snapshot, error in
guard error == nil, let snapshot = snapshot else {
return
}
let data = snapshot.data()!
for (key, _) in data {
let productTags = data["\(key)"] as? [Any]
if let maxIndex = productTags?.count {
for index in 0..<maxIndex {
if let tag = productTags![index] as? String, tag != "" {
if self.productTags[key] == nil {
self.productTags[key] = []
self.productTags[key]?.append(tag)
} else {
self.productTags[key]?.append(tag)
}
}
}
}
}
}
Это прекрасно работает и дает следующие результаты:
productTags = [ product1 : [tag1, tag2, tag3, tag4],
product2 : [tag1, tag2, tag3, tag4, tag 5],
product3 : [tag1, tag2, tag3]
]
Однако мне нужно превратить словарь в массив, чтобы результаты выглядели так:
productTags = [ [product1 : [tag1, tag2, tag3, tag4]],
[product2 : [tag1, tag2, tag3, tag4, tag 5]],
[product3 : [tag1, tag2, tag3]]
]
Итак, моя переменная будет выглядеть так:
var productTagsArray : [[String : [String]]] = [[:]]
Как бы я изменил свой код, чтобы добавить его в массив вместо словаря?