ios - Firebase Google SignIn 每次都询问权限

标签 ios swift firebase firebase-authentication google-signin

我已经按照 Firebase 指南在我的 iOS 应用中使用 Firebase 实现了 Google SignIn。问题是每次我测试登录时,它总是要求权限。
enter image description here

Google SignIn涉及的AppDelegate代码如下:

class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
        // Override point for customization after application launch.
        FIRApp.configure()

        GIDSignIn.sharedInstance().clientID = FIRApp.defaultApp()?.options.clientID
        GIDSignIn.sharedInstance().delegate = self


        return true
    }

    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
        return GIDSignIn.sharedInstance().handle(url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplicationOpenURLOptionsKey.annotation])
    }

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

        if let error = error {
            print(error.localizedDescription)
            return
        }


        print("Logged in with Google successfull")


        // ... Firebase authentication ...

    }
}

这里是带有 GIDSignInButton 的 View Controller 的代码:

import UIKit

class IntroViewController: UIViewController, GIDSignInUIDelegate {


    @IBOutlet weak var signInButton: GIDSignInButton!


    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.

        GIDSignIn.sharedInstance().uiDelegate = self
        signInButton.style = .wide
    }


}

我在网上搜索了很多,但一无所获...那么,如何防止每次都请求许可?

最佳答案

我相信这是按预期工作的。问题是您在测试您的应用程序时正在注销用户,并且 Google 登录库假设如果用户已明确注销您的应用程序,它应该在之前再次请求该用户的许可将该用户登录。

如果您显式注销用户,signIn() 调用和signInSilently() 调用都应该成功而不显示任何一种登录屏幕。

关于ios - Firebase Google SignIn 每次都询问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39052766/

相关文章:

ios - Swift 中的这段 Google Maps iOS SDK 代码有什么作用?

ios - Swift NSNotificationCenter 不会触发

swift - Property Wrapper @Lazy 变量线程安全吗?

ios - 如何使用 childByAutoId 更新 Firebase 中的值?

arrays - 当你想使用 index.advanceBy 时,你应该使用什么类型?

javascript - 无法从 Firebase Storage UploadTask 更新进度栏

ios - GLSL 中的反射贴图

ios - 为扩展 View 添加委托(delegate)和数据源

ios - Firebase FAuthData 即使在删除应用程序后也会保存

ios - 没有结果时 Firebase 查询不调用 block