You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI调用Firestore addData函数出现类型转换错误求助

错误原因与解决方案

问题根源

你在Button的action参数里直接执行了model.addData(...)方法,但Button的action要求接收一个无参数、返回值为Void的闭包(类型是() -> Void)。而addData方法本身的返回值是Void(也就是()),你把这个返回值直接传给了需要闭包的参数,导致类型不匹配,触发了报错。

修复代码

把addData的调用包裹在闭包中,修改按钮部分的代码即可:

Button(action: {
    model.addData(
        availableSeats: availableSeats, 
        image: image, 
        description: description, 
        duration: duration, 
        name: name, 
        place: place, 
        startTime: startTime
    )
}) { 
    Text("Save")  
}

额外优化建议

  • 目前duration、availableSeats这类本该是数字的字段用了String类型,建议改成Int类型,配合TextField的数字输入配置,避免存入无效的非数字数据。
  • 可以给addData方法添加错误提示逻辑,比如用@Published变量抛出提示,让用户知道保存是否成功。

内容的提问来源于stack exchange,提问作者DANILA BYKHOVOY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 08:12:26