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

Firebase Swift集成报错:向无参数调用传递参数

解决方案

这个错误是因为你调用的document.data()方法本身不需要参数,但你传入了as: User.self,说明你的FirebaseFirestoreSwift版本和代码中的API不匹配,或者API使用方式错误。以下是几种修复方式:

方式1:更新FirebaseFirestoreSwift到最新版本

  1. 终端运行命令更新Pods:
    pod update FirebaseFirestoreSwift
    
  2. 确保你的User类型实现了Codable协议:
    struct User: Codable {
        // 定义你的用户属性,比如name、email等
    }
    
  3. 重新运行项目,此时document.data(as: User.self)应该可以正常工作。

方式2:兼容旧版本的解码方式

如果暂时不想更新Pod版本,可以改用手动解码:

do {
    guard let dataDict = document.data() else { return }
    let jsonData = try JSONSerialization.data(withJSONObject: dataDict)
    let user = try JSONDecoder().decode(User.self, from: jsonData)
    self.user = user
} catch {
    print("Sync error: \(error)")
}

方式3:使用旧版本的decode方法

部分旧版本的FirebaseFirestoreSwift提供了decode方法替代data(as:),可以尝试:

do {
    let user = try document.decode(User.self)
    self.user = user
} catch {
    print("Sync error: \(error)")
}

补充说明

  • 确认你的User模型的属性名称和Firestore文档中的字段名称完全匹配,或者使用CodingKeys自定义映射;
  • 如果你使用的是FirebaseFirestoreSwift的早期版本(比如<10.0),data(as:)方法尚未推出,必须使用上述兼容方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 04:55:01