SwiftData使用@Query报错:'Query'在当前上下文类型查找歧义
解决SwiftData @Query的“类型查找歧义”错误
错误原因
你同时导入了FirebaseFirestore和SwiftData两个框架,这两个框架内部都定义了名为Query的类型。编译器在解析@Query属性包装器时,无法判断你要引用的是SwiftData的Query还是FirebaseFirestore的Query,因此抛出'Query' is ambiguous for type lookup in this context错误。
解决方法
有两种可行的解决方式:
- 方式一:明确指定模块前缀
直接在@Query前加上SwiftData的模块名,强制编译器使用SwiftData的Query类型:
import FirebaseFirestore import SwiftData struct ContentView: View { @Environment(\.modelContext) var context @SwiftData.Query var models: [DataModel] var body: some View { ... } }
- 方式二:按需导入FirebaseFirestore类型(可选)
如果当前文件仅需使用FirebaseFirestore的部分类型,而非全部,可以通过显式导入指定类型来避免Query的命名冲突,比如:
import SwiftData // 只导入需要的FirebaseFirestore类型,比如Firestore、DocumentReference等 import FirebaseFirestore.Firestore import FirebaseFirestore.DocumentReference struct ContentView: View { @Environment(\.modelContext) var context @Query var models: [DataModel] var body: some View { ... } }
内容的提问来源于stack exchange,提问作者Stoic
相关产品推荐
相关产品推荐

