firebase firestore 不接受来自 swift 编码 json 的我的写函数

firebase firestore not accepting my write function from swift encoded json

这是我的结构

 struct CustomerDetail: Codable {
var customerID: String = ""
var firstname: String = ""
var lastname: String = ""
var age: Int = 0
var birthday: Int = 0
var country: String = ""
var pound: Bool = true
var feetboolean: Bool = true
var currentweight: Int = 0
var desiredweight: Int = 0
var sex: Bool = false
var feet: Int = 0
var inches: Int = 0
var cm: Float = 0.0

}

这是我的写函数

struct writetofirebase {
var customerdetails: CustomerDetail = CustomerDetail()
let db = Firestore.firestore()
var delegate: writefirebase?
func write(){
    print(customerdetails)
    do {
        if let data = try? JSONEncoder().encode(customerdetails){
            try db.collection("collection name").document("document name").setData(from: data)
            delegate?.didSuccessfulWrite(true)
        }else{
            print("failed to encode")
        }
       
    } catch let error {
        delegate?.didFailWithError(error)
    }
}

}

这是我的错误

https://i.stack.imgur.com/cOpQK.png

这是我的 firebase 结构化数据

https://i.stack.imgur.com/cOpQK.png

错误是说它在 setData 方法中接收的数据不兼容,因此请求格式不正确。您应该通过定义自定义字典或直接传递对象来适当地更新或设置数据。

db.collection("collection name").document("document name").setData(data, merge: true)

来源:https://firebase.google.com/docs/firestore/manage-data/add-data#set_a_document