SwiftUI即时通讯应用开发报错:Cannot find auth in scope
解决「Cannot find auth in scope」错误
错误原因及修复方案
未导入FirebaseAuth框架
你的代码调用了Firebase的Auth功能,但未导入对应框架。在文件顶部添加:import FirebaseAuthAuth实例调用语法错误
获取Firebase Auth实例的正确写法是Auth.auth()(带括号),你写的Auth.auth缺少括号,导致无法识别。修改创建用户的那一行:Auth.auth().createUser(withEmail: email, password: password) {额外语法错误
代码中.self.errorMessage多了一个前置的点,应改为self.errorMessage;另外你定义的状态变量是LoginStatusMessage,如果没有单独的errorMessage变量,建议替换为已有的变量:self.LoginStatusMessage = "Failed to create user: \(err)"
修复后的完整代码示例
import FirebaseAuth import SwiftUI struct AuthView: View { @State private var email = "" @State private var password = "" @State private var loginStatusMessage = "" private func createNewAccount() { Auth.auth().createUser(withEmail: email, password: password) { result, error in if let error = error { print("创建用户失败: \(error.localizedDescription)") loginStatusMessage = "创建用户失败: \(error.localizedDescription)" return } guard let userId = result?.user.uid else { return } print("用户创建成功,ID: \(userId)") loginStatusMessage = "用户创建成功,ID: \(userId)" } } var body: some View { VStack { TextField("邮箱", text: $email) .textFieldStyle(.roundedBorder) SecureField("密码", text: $password) .textFieldStyle(.roundedBorder) Button("注册") { createNewAccount() } Text(loginStatusMessage) .foregroundColor(.red) .padding(.top) } .padding() } }
额外检查项
- 确认项目已正确配置Firebase,包含
GoogleService-Info.plist文件 - 检查Podfile是否包含
pod 'Firebase/Auth',并执行过pod install
内容的提问来源于stack exchange,提问作者South Sponge
相关产品推荐
相关产品推荐

