GoogleAuth在IOS中使用Firebase

时间:2018-05-02 16:01:35

标签: ios firebase firebase-authentication swift4 google-authentication

我按照官方Firebase频道(https://firebase.google.com/docs/auth/ios/google-signin?hl=en-419)的说明使用Google身份验证订阅我的应用。问题出现在函数

func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error?)  

它无法从命令中解析标识符GoogleAuthProvider和Auth。即“使用未解析的标识符'GoogleAuthProvider'”

let credential = GoogleAuthProvider.credential(idToken: authentication.idToken, accessToken: authentication.accessToken)
        // ...
Auth.auth().signIn(with: credential) { (user, error) in
            if let error = error {
                // ...
                return
            } 

我在查看器和AppDelegate中都导入了:

import Firebase
import GoogleSignIn

我的Podfile看起来像这样:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'racc' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for racc
  pod 'Firebase/Core'
  pod 'GoogleSignIn'
  pod 'Firebase/Auth'

  target 'raccTests' do
    inherit! :search_paths
    # Pods for testing
  end

end

我在Swift 4工作

3 个答案:

答案 0 :(得分:2)

您需要将FirebaseAuth导入到您的应用程序委托中。

在您的Podfile中: pod 'Firebase/Auth'

在您的AppDelegate中: import FirebaseAuth

Google的官方说明中缺少这些步骤。

答案 1 :(得分:0)

您的Firebase信息中心最有可能未启用Google登录。要启用,请转到Firebase信息中心,然后单击您的项目。

从那里,点击身份验证和登录方法。找到Google,然后点击启用。

Screenshot of Sign-In Method

答案 2 :(得分:0)

有时候您需要将pod'Firebase / Auth'放置在pod文件中其他Pod的上方,这在我没有导入常规FirebaseAuth的情况下对我有用