FIRInvalidArgumentException: вложенные массивы не поддерживаются - PullRequest
1 голос
/ 09 июля 2020

В настоящее время я пытаюсь использовать кодируемый протокол 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
          }
     ]
]

Любая помощь была бы замечательной! Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...