Декодировать элемент результата данных Cloud Firestore в NSObject - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть результат из облачной пожарной базы:

let mpUserRef = db?.collection(MPUser.PROPERTY_DB)
        .whereField(MPUser.PROPERTY_FIREBASE_USER_ID, isEqualTo: firebaseUSer.uid)
        .limit(to: 1).getDocuments() { (document, err) in
            if let err = err {
                print("Error getting documents: \(err)")
            } else {
                for document in document!.documents {
                    let mpUser = fromJsonToMpUser( userJson: "\(document.data())" )

                    if mpUser != nil{
                        delegate.mpUser = mpUser
                    }
                }
            }
    }

И я хочу декодировать результат в моем бизнес-объекте, вызывающем метод:

    class func fromJsonToMpUser( userJson: String ) -> MPUser?{
    let decoder = JSONDecoder()
    do{
        let json = userJson.data(using: .utf8)!
        let mpUser = try decoder.decode(MPUser.self, from: json)
        return mpUser
    }catch{
        print("Errore while ecode Club")
        return nil
    }
}

Но это не работает, у меня появляется сообщение об ошибке:

«Указанные данные не были действительными в формате JSON.», UnderError: Необязательный (Error Domain = NSCocoaErrorDomain Code = 3840 «Плохо сформированный массив вокруг символа 17.» UserInfo = {NSDebugDescription = Плохо сформированный массив вокруг символа 17.}))) .

Итак, как я могу преобразовать результат работы облачного пожарного магазина в действительный Json?

1 Ответ

0 голосов
/ 05 ноября 2018

Я решил свой вопрос с помощью библиотеки CodableFirebase (https://github.com/alickbass/CodableFirebase, созданный @alickbass)

...