使用 Firebase 进行 Google 身份验证
Posted
技术标签:
【中文标题】使用 Firebase 进行 Google 身份验证【英文标题】:Google Authentication With Firebase 【发布时间】:2017-03-16 00:49:37 【问题描述】:我在 Xcode 8 中使用 Swift 3,并且在我的代码中使用了这扇门。有什么办法可以解决吗?如果有人可以提供帮助,我将不胜感激。
FIRAuth.auth()?.signIn(with: credential, completion: (user: FIRUser?, error: NSError?) in
if error != nil
print(error!.localizedDescription)
return
else
print(user?.email)
print(user?.displayName)
错误:
无法将类型 '(FIRUser?, NSError?) -> ()' 的值转换为预期的参数类型 'FIRAuthResultCallback?'
【问题讨论】:
【参考方案1】:您的完成块需要变量名称作为返回值(用户对象和错误) 在下面的示例中,我为用户对象添加了名称“用户”,为错误对象添加了错误。
FIRAuth.auth()?.signIn(with: credential, completion: (user, error) in
if error != nil
print(error!.localizedDescription)
return
else
print(user?.email)
print(user?.displayName)
【讨论】:
【参考方案2】:实际上,在 Xcode 8 中,有时我们在打开完成块时会遇到问题。并且在您的代码中,该块无法正确打开。您的块应打开为:
FIRAuth.auth()?.signIn(with: credential , completion: (user, error) in
//Do as per your need here
)
希望,这有帮助
【讨论】:
【参考方案3】:确保您没有在代码中复制FIRAuth.auth()?.signIn
。当我将它放在 SignInViewController 类下方时出现错误。
这是我在最新的 Swift 4 中尝试过的 ios Google Sign 的工作代码。
FIRAuth.auth()?.signIn(with: credential, completion: (user: FIRUser?, error: Error?) in
if error != nil
print(error!.localizedDescription)
return
else
print(user?.email)
print(user?.displayName)
【讨论】:
以上是关于使用 Firebase 进行 Google 身份验证的主要内容,如果未能解决你的问题,请参考以下文章
将 Google 身份验证令牌与 Firebase 一起使用
使用 Google Play 游戏进行 Firebase 身份验证
使用 google firebase 和 spring 进行身份验证