配置Firebase谷歌登录遇GIDSignIn无clientID成员错误求解决
解决GIDSignIn无clientID成员的错误
这个错误是因为你使用的是GoogleSignIn 6.x及以上版本,该版本对API做了更新,GIDSignIn.sharedInstance不再提供clientID直接赋值的属性,需要通过GIDConfiguration来配置。结合你用Firebase的需求,推荐以下两种解决方案:
方案一:通过Firebase自动获取Client ID(推荐)
由于你已经初始化了Firebase,Firebase会从GoogleService-Info.plist中自动读取配置,无需手动硬编码Client ID,代码修改如下:
import UIKit import FirebaseCore import GoogleSignIn @main class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { FirebaseApp.configure() // 从Firebase配置中获取Client ID并初始化GIDSignIn guard let clientID = FirebaseApp.app()?.options.clientID else { print("无法获取Firebase Client ID,请检查GoogleService-Info.plist是否正确添加") return true } GIDSignIn.sharedInstance.configuration = GIDConfiguration(clientID: clientID) return true } }
方案二:手动配置GIDConfiguration
如果需要手动指定Client ID,直接创建GIDConfiguration实例并赋值给GIDSignIn的configuration属性即可:
// 替换为你的实际Client ID GIDSignIn.sharedInstance.configuration = GIDConfiguration(clientID: "MY Client ID")
注意事项
- 若你需要使用旧版API(直接设置
clientID),可以在Podfile中指定GoogleSignIn的5.x版本,比如:pod 'GoogleSignIn', '~> 5.0',但不推荐,旧版本不再维护。 - 确保
GoogleService-Info.plist文件已正确添加到项目的目标中,Firebase的配置依赖该文件。
内容的提问来源于stack exchange,提问作者Neha
相关产品推荐
相关产品推荐

