Получение массива объектов с помощью FirebaseFirestoreSwift - PullRequest
0 голосов
/ 10 июля 2020

У меня есть структура, которая выглядит так:

struct Joint: Identifiable, Codable {
    @DocumentID var id : String? = UUID().uuidString
    var serviceType : Int
    var businessName : String
    var keywords: [String]
    var menu : [DishItems]
    
    enum CodingKeys : String, CodingKey {
        case businessName
        case serviceType = "jointType"
        case keywords
        case menu
    }
}

struct DishItems: Codable {
    var listOrder : Int
    var menuItemName : String
    var menuItemDescription : String
    var menuItemPrice : Double
}

DishItems - это настраиваемый объект, и я использую декодер FirebaseFireStoreSwift JSON для извлечения документов.

let db = Firestore.firestore().collection("Joints")
        db.getDocuments { (querySnapshot, error) in
            guard let documents = querySnapshot?.documents else {
                print("No restaurants")
                return
            }
            
            let jointsArray : [Joint] = documents.compactMap { 
                return try? $0.data(as: Joint.self)
            }
            
            completion(jointsArray)
        }

Я могу запросить все документы, если исключу «меню» из родительской структуры, но как только я включу его, запросы не будут выполняться. Как мне go получить массив объектов внутри JSON?

введите описание изображения здесь

...