

FirebaseでGoogle認証をしたく、[公式ドキュメント](https://firebase.google.com/docs/auth/ios/start?hl=ja)を参考にしながら進めていたのですが、"Type
of expression is ambiguous without more context"
と表示されて躓いています。どのようにすれば対処できるでしょうか。ご教示いただきたいです。

[![スクショ](https://i.stack.imgur.com/p42dG.png)](https://i.stack.imgur.com/p42dG.png)

## コード

AppDelegate.swift

[code]

    import UIKit
    import FirebaseCore
    import GoogleSignIn
    import FirebaseAuth
    
    
    @main
    class AppDelegate: UIResponder, UIApplicationDelegate {
    
        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
            // Override point for customization after application launch.
            
            let ud = UserDefaults.standard
            let firstLunchKey = "firstLunch"
            let firstLunch = [firstLunchKey: true]
            ud.register(defaults: firstLunch)
            
            FirebaseApp.configure()
    
            return true
        }
    
        // MARK: UISceneSession Lifecycle
    
        func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
            // Called when a new scene session is being created.
            // Use this method to select a configuration to create the new scene with.
            return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
        }
    
        func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
            // Called when the user discards a scene session.
            // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
            // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
        }
        
        func application(_ application: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any]) -> Bool {
            return GIDSignIn.sharedInstance.handle(url)
        }
    
    
    }
    
[/code]

loginViewController.swift

[code]

    import UIKit
    import FirebaseCore
    import GoogleSignIn
    import FirebaseAuth
    
    
    class loginViewController: UIViewController {
        
        @IBOutlet weak var signInButton: GIDSignInButton!
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            // Do any additional setup after loading the view.
        }
        
        @IBAction func didTapSoginButton(_ sender: Any) {
            auth()
        }
        
        @IBAction func loginButton(_ sender: Any) {
        }
        
        @IBAction func registerButton(_ sender: Any) {
        }
        
        private func auth() {
            guard let clientID = FirebaseApp.app()?.options.clientID else { return }
            let config = GIDConfiguration(clientID: clientID)
            
    //この下の一行に出てます
            GIDSignIn.sharedInstance.signIn(with: config, presenting: self) { [unowned self] user, error in
                if let error = error {
                    print("GIDSignInError: \(error.localizedDescription)")
                    return
                }
                
                guard let authentication = user?.authentication,
                      let idToken = authentication.idToken else { return }
                
                let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: authentication.accessToken)
                self.login(credential: credential)
            }
        }
        
        private func login(credential: AuthCredential) {
            print("ログイン完了")
        }
    
    }
    
[/code]


CC BY-SA 4.0
2023-02-16T15:41:19.620
93878
2023-02-17T15:55:50.837
2023-02-17T15:55:50.837
55638
55638
question
swift
Type of expression is ambiguous without more contextにはどうすればいいのか