В настоящее время я пытаюсь использовать кодируемый протокол Swift для добавления и чтения пользовательских объектов в базу данных Firebase и из нее. Я следовал инструкциям в этих документах . Однако, когда я пытаюсь выполнить запись в базу данных, я получаю сообщение об ошибке «FIRInvalidArgumentException: вложенные массивы не поддерживаются». Но разве они не поддерживаются? Я видел здесь еще один пост go, посвященный аналогичной проблеме, но я не понимаю, что я здесь сделал не так.
Это структурные представления Swift, реализующие Codable:
struct List: Codable {
var title: String
var date: String
var description: String
var data: [SectionHeaders: Array<Item>] = [
.produce: [],
.seafood: [],
.meat: [],
.deli: [],
.bakery: [],
.pantry: [],
.dairy: [],
.frozen: [],
.other: []
]
enum CodingKeys: String, CodingKey {
case name
case date
case description
case data = "items"
}
struct Item: Codable {
var name: String?
var quantity: String?
}
enum SectionHeaders: Int, Codable {
case produce = 0, seafood, meat, deli, bakery, pantry, dairy, frozen, other, total
enum CodingKeys: String, CodingKey {
case produce = "produce"
case seafood = "seafood"
case meat = "meat"
case deli = "deli"
case bakery = "bakery"
case pantry = "pantry"
case dairy = "dairy"
case frozen = "frozen"
case other = "other"
}
}
И вот представление данных, которое я стремлюсь получить:
"title": String,
"date": String,
"description": String,
"items": [
"header1": [{
"name": String,
"quantity": String
},
{
"name": String,
"quantity": String
}
],
"header2": [{
"name": String,
"quantity": String
},
{
"name": String,
"quantity": String
}
]
]
Любая помощь была бы замечательной! Заранее спасибо!