Проблема с сохранением Profile Data в Firebase (28 урок)

swift
ios

#1

Добрый день, у меня возникла проблема в 28 видео по курсу Networking
А именно: игнорируется (не вызывается) функция saveIntoFirebases()
Я и конечный проект скачал и все до этого видео просмотрел, не знаю как решить данную проблему. Без нее я не могу продвинутся дальше, потому что 29 урок это fetching data from firebase database.
Главное у меня подгружается facebook, срабатывает метод fetchDataFacebook(), я получаю в консоль все свои данные, но затем метод saveIntoFirebases просто не срабатывает.

import UIKit
import FBSDKLoginKit
import FirebaseAuth
import FirebaseDatabase

class LoginViewController: UIViewController {
    
    var userProfile: UserProfile?
    
    lazy var fbLoginButton: UIButton = {
        let loginButton = FBSDKLoginButton()
        loginButton.frame = CGRect(x: 32, y: 360, width: view.frame.width - 64, height: 50)
        loginButton.delegate = self
        return loginButton
    }()
    
    lazy var customFBLoginButton: UIButton = {
        let loginBtn = UIButton()
        loginBtn.backgroundColor = UIColor(hexValue: "#3B5999", alpha: 1)
        loginBtn.setTitle("Login with Facebook", for: .normal)
        loginBtn.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)
        loginBtn.setTitleColor(.white, for: .normal)
        loginBtn.frame = CGRect(x: 32, y: 420, width: view.frame.width - 64, height: 50)
        loginBtn.layer.cornerRadius = 4
        loginBtn.addTarget(self, action: #selector(customFBLogin), for: .touchUpInside)
        return loginBtn
    }()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.addVerticalGradientLayer(topColor: primaryColor, bottomColor: secondaryColor)
        
        setupViews()
    }
    
    override var preferredStatusBarStyle: UIStatusBarStyle {
        get {
            return .lightContent
        }
    }
    
    private func setupViews() {
        view.addSubview(fbLoginButton)
        view.addSubview(customFBLoginButton)
    }
    
}

// MARK:  Facebook SDK
extension LoginViewController: FBSDKLoginButtonDelegate {
    
    func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
        if error != nil {
            print(error)
            return
        }
        
        guard FBSDKAccessToken.currentAccessTokenIsActive() else { return }
        print("Successfully logged in with facebook...")
        signIntoFirebase()
        
    }
    
    func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) {
        
        print("Did log out of facebook")
    }
    

    
    @objc private func customFBLogin() {
        
        let loginManager = FBSDKLoginManager()
        loginManager.logIn(withReadPermissions: ["email", "public_profile"], from: self) { (result, error) in
            if let error = error {
                print (error.localizedDescription)
                return
            }
            guard let result = result else { return }
            
            if result.isCancelled { return }
            else {
                self.signIntoFirebase()
            }
            
        }
    }
    
    
    private func signIntoFirebase() {
        let accessToken = FBSDKAccessToken.current()
        
        guard let accessTokenString = accessToken?.tokenString else { return }
        
        let credentials = FacebookAuthProvider.credential(withAccessToken: accessTokenString)
        
        Auth.auth().signInAndRetrieveData(with: credentials) { (user, error) in
            
            if let error = error {
                print ("Smth is going wrong!", error)
                return
            }
            
            print ("Success to login in with our user")
            self.fetchDataFacebook()
        }
    }
    
    private func fetchDataFacebook() {
        
        FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, email"])?.start(completionHandler: { (_, result, error) in
            
            if let userData = result as? [String : Any] {
                self.userProfile = UserProfile(data: userData)
                print (userData)
                self.saveIntoFirebases()
            }
            if let error = error {
                print(error)
                return
            }
        })
    }
    
    private func saveIntoFirebases() {
        
        guard let uid = Auth.auth().currentUser?.uid else { return }
        
        let userData = ["name": userProfile?.name, "email" : userProfile?.email]
        
        let values = [uid : userData]
        
        Database.database().reference().child("bklabla").updateChildValues(values) { (error, _) in
            if let error = error {
                print (error)
                return
            }
            
            print ("Success into firebase")
            self.openMainVC()
        }
    }
    
    
    private func openMainVC() {
        dismiss(animated: true)
    }
}


После того как я зашел через facebook, у меня не закрывается окно LoginVC, так как функция openMainVC находится в методе saveIntoFirebases, который и не срабатывает.

Вот что выводится в консоли


То есть userData выводится все ок


В Realtime Database в firebase также ничего не записывается (правила на чтение и запись стоят true)