Swift使用FirebaseFirestoreSwift时如何修复“无参数调用传入参数”报错
错误原因
该编译报错的核心原因是手动引入Firebase SDK时仅导入了基础Firestore组件,未引入FirebaseFirestoreSwift组件:基础Firestore库提供的data()方法无任何入参,支持传入as:参数、直接将文档数据解码为自定义Codable模型的data(as:)方法是FirebaseFirestoreSwift的独有能力,缺失该组件就会触发「传入了无参数方法不接受的参数」的错误提示。
修复步骤
- 首先从你下载的Firebase GitHub SDK包中找到对应架构的
FirebaseFirestoreSwift库文件(.framework或.xcframework后缀),将其添加到项目的依赖列表中,如果是动态库版本需要勾选「Embed & Sign」选项,静态库则需要确认链接配置正确。 - 确认当前代码文件头部同时导入两个依赖库:
import FirebaseFirestore import FirebaseFirestoreSwift
- 确认你定义的
User模型遵守Codable协议:
struct User: Codable { // 属性名需要和Firestore文档的字段名对应,也可以通过CodingKeys自定义映射 let uid: String let nickname: String // 其他业务属性... }
- 如果你暂时不想引入FirebaseFirestoreSwift组件,也可以用原生解析方法替换原有代码行,同样可以实现模型解析:
guard let snapshotData = snapshot?.data(), let jsonData = try? JSONSerialization.data(withJSONObject: snapshotData), let user = try? JSONDecoder().decode(User.self, from: jsonData) else { return }
生效验证
完成配置后按下Command+Shift+K清理项目缓存,重新编译后报错即可消除。
内容的提问来源于stack exchange,提问作者Shawn Hines
相关产品推荐
相关产品推荐

