在Xcode11.5中,可以通过以下步骤从AppDelegate访问ViewController,并实现Firebase谷歌登录功能:
import Firebase
import GoogleSignIn
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID
return true
}
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return GIDSignIn.sharedInstance().handle(url)
}
import GoogleSignIn
class ViewController: UIViewController, GIDSignInDelegate {
override func viewDidLoad() {
super.viewDidLoad()
GIDSignIn.sharedInstance()?.presentingViewController = self
GIDSignIn.sharedInstance()?.delegate = self
}
@IBAction func googleSignInButtonTapped(_ sender: UIButton) {
GIDSignIn.sharedInstance()?.signIn()
}
// 实现谷歌登录回调方法
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error?) {
if let error = error {
print("谷歌登录出错:\(error.localizedDescription)")
return
}
// 用户成功登录,可以在这里处理用户信息
let userId = user.userID
let fullName = user.profile.name
let email = user.profile.email
// 进行其他操作,例如跳转到下一个界面
}
}
以上代码实现了在Xcode11.5中从AppDelegate访问ViewController,并使用Firebase和GoogleSignIn实现了谷歌登录功能。请注意,这里没有提及任何特定的云计算品牌商,但你可以根据自己的需求选择适合的云计算平台来部署和扩展你的应用程序。
领取专属 10元无门槛券
手把手带您无忧上云