ios - Firebase iOS - 类型 'LoginViewController' 不符合协议(protocol) 'FUIAuthDelegate'

标签 ios swift firebase firebase-authentication firebaseui

我正在将 Firebase Auth UI 集成到我的应用程序中,但出于某种原因,我不断收到此错误:

Type 'LoginViewController' does not conform to protocol 'FUIAuthDelegate'

在您开始将我贬低到被遗忘之前,我保证我不是白痴。 FUIAuthDelegate 只有一个必需的功能,它在问题检查器的下方列出:

Protocol requires function 'authUI(_:didSignInWith:error:)' with type '(FUIAuth, User?, Error?) -> Void'; do you want to add a stub?

然后是:

Candidate has non-matching type '(FUIAuth, User?, Error?) -> ()'

问题是,我在我的类(class)里有这个功能,我很确定我符合协议(protocol)...这是我的 ViewController 的代码:

import UIKit
import FirebaseAuth
import FirebaseAuthUI


typealias FIRUser = FirebaseAuth.User

class LoginViewController: UIViewController {

    @IBOutlet weak var loginButton: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func loginButtonTapped(_ sender: Any) {
        print("Login Button Tapped")

        guard let authUI = FUIAuth.defaultAuthUI()
            else { return }

        authUI.delegate = self

        let authViewController = authUI.authViewController()
        present(authViewController, animated: true)    
    }
}
extension LoginViewController: FUIAuthDelegate {
    func authUI(_ authUI: FUIAuth, didSignInWith user: User?, error: Error?) {
        print("")
    }
}

我疯了吗?有人可以告诉我我在这里缺少什么吗?

最佳答案

从 LoginViewController 扩展中删除 FUIAuthDelegate 协议(protocol):

extension LoginViewController {
func authUI(_ authUI: FUIAuth, didSignInWith user: User?, error: Error?) {
    print("")
}

我刚刚确认,当我将 FUIAuthProtocol 添加到我自己的应用程序时,我遇到了与您看到的相同的错误。没有它,它运行良好。

关于ios - Firebase iOS - 类型 'LoginViewController' 不符合协议(protocol) 'FUIAuthDelegate',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44663741/

相关文章:

由于 firebase-storage :11. 0.2 依赖性,Android 应用程序构建失败

java - 如何仅使用数组中数字大于 X 的文档制作 RecyclerView

iphone - 将参数传递给新的ViewController

ios - 从字符串初始化 NSItemProvider 的问题

android - - 如何修复它 : Incorrect use of ParentDataWidget?

ios - prepareForSegue 无法在 iOS 7 上获取目标 View Controller

swift - 如何在真实应用中实现 CallKit?

swift - ReplayKit:RPScreenRecorder.shared().startCapture() 不工作

swift - 如何使用 firebase 快速向新创建的用户添加信息

ios - 覆盖我的自定义 UIView 子类的初始化程序