我正在尝试在 Swift 项目中配置 Google SignIn,但无法调用 clientID。昨天它显示“此属性是在 FirebaseOptions 上定义的,在此上下文中可能不可用。” 今天它说“此属性是在 GIDConfiguration 上定义的,并且在此上下文中可能不可用。”
在我看来,这是 Firebase 或 GoogleSignIn 的包导入时出现的一些错误?我完成了下载软件包的所有步骤,所以我不知道出了什么问题。我的 GoogleService-Info.plist 它在项目中。另外,我使用 Firebase 进行了电子邮件和密码登录设置,并且工作正常,但是这个 FirebaseApp.configure() 表达式没有突出显示,所以它也让我感到痒痒。
我使用的是 Xcode 15.0.1、macOS Sonoma 14.0。
谢谢!
clientID 属性已移至 FirebaseOptions,您可以像这样访问 clientID:
@MainActor
func getGoogleAuthCredential() async throws -> AuthCredential {
let clientID = FirebaseApp.app()!.options.clientID!
GIDSignIn.sharedInstance.configuration = GIDConfiguration(clientID: clientID)
let rootVC = UIApplication.shared.windows.first!.rootViewController!
let result = try await GIDSignIn.sharedInstance.signIn(withPresenting: rootVC)
let idToken = result.user.idToken!.tokenString
let accessToken = result.user.accessToken.tokenString
let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: accessToken)
return credential
}
有关更多信息,请参阅此快速迁移指南