Данные пользователя для входа в Facebook в разделе Аутентификация не отображаются на консолях Firebase - PullRequest
1 голос
/ 23 марта 2019

Каждый раз, когда я использую учетную запись Facebook для входа в приложение, предполагается, что идентифицированная электронная почта появляется на консоли Firebase, но она не работает должным образом.Пользователи могут использовать свою учетную запись Facebook для доступа к приложению, но проблема в том, что на странице моего профиля всегда происходит сбой, когда я пытаюсь сделать так, чтобы на этой странице отображалась электронная почта пользователей.но если я использую учетную запись электронной почты для входа в систему, у нее не возникает проблем с тем, что электронное письмо, которое я использовал для регистрации, может нормально отображаться.

Я сделал все по этой ссылке, но не могу это исправитьпроблема.https://firebase.google.com/docs/auth/ios/facebook-login

На странице профиля я использую этот код для вызова электронной почты, и пользователь

import UIKit
import Firebase
import FirebaseAuth
import FacebookLogin
import FacebookCore
import FirebaseStorage

class ProfileViewController: UIViewController {

    @IBOutlet weak var nameLabel: UILabel!
    @IBOutlet weak var emailLabel: UILabel!
    @IBOutlet weak var passTextField: UITextField!
    @IBOutlet weak var changeNameText: UITextField!
    @IBOutlet weak var menuButton: UIBarButtonItem!
    @IBOutlet weak var imageProfile: UIImageView!
    @IBOutlet weak var alertButton: UIBarButtonItem!

    let imageUniqueName = UUID().uuidString
    let imagePicker = UIImagePickerController()

    override func viewDidLoad() {
        super.viewDidLoad()
        let user = Auth.auth().currentUser
        setUserDataToView(withFIRUser: user!)
        customizeNavBar()
        sideMenus()
        let tapGesture = UITapGestureRecognizer()
        tapGesture.addTarget(self, action: #selector(ProfileViewController.openGallery(tapGesture:)))
        imageProfile.isUserInteractionEnabled = true
        imageProfile.addGestureRecognizer(tapGesture)
        imageProfile.drawAsCircle()

    }

    func setUserDataToView(withFIRUser user: User) {
        nameLabel.text = user.displayName
        emailLabel.text = "อีเมล์ : \(user.email!)"

    }

это весь код на моей странице LoginViewController

import UIKit
import Firebase
import FirebaseAuth
import FBSDKCoreKit
import FBSDKLoginKit
import FBSDKCoreKit
import FacebookLogin
import FacebookCore

class LoginViewController: UIViewController, FBSDKLoginButtonDelegate {

    func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
        if error != nil {
            print("โปรดตรวจสอบใหม่อีกรอบ", error.localizedDescription)
        } else if result.isCancelled {
        } else {
            let credential = FacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString)
            Auth.auth().signInAndRetrieveData(with: credential) { (authResult, error) in
                ProgressHUD.showSuccess("ยินดีต้อนรับ")
                self.performSegue(withIdentifier: "Main", sender: self)
            }
        }
    }
    func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) {
        ProgressHUD.showSuccess("ออกจากระบบสำเร็จ")
    }
    let loginButton = FBSDKLoginButton()

    //Textfields pre-linked with IBOutlets
    @IBOutlet var emailTextfield: UITextField!
    @IBOutlet var passwordTextfield: UITextField!
    @IBOutlet weak var facebookButton: FBSDKLoginButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        loginButton.delegate = self
        loginButton.readPermissions = ["public_profile", "email"]
        self.navigationController?.setNavigationBarHidden(true, animated: false)

    }

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


    @IBAction func logInPressed(_ sender: AnyObject) {

        //TODO: Log in the user
        Auth.auth().signIn(withEmail: emailTextfield.text!, password: passwordTextfield.text!) { (user, error) in

            if error != nil{
                let alertController = UIAlertController(title: "Error", message: error?.localizedDescription, preferredStyle: .alert)
                let defaultAction = UIAlertAction(title: "OK", style: .cancel, handler: nil)

                alertController.addAction(defaultAction)
                self.present(alertController, animated: true, completion: nil)
                print(error!)
            }else{
                ProgressHUD.showSuccess("ยินดีต้อนรับ")
                self.performSegue(withIdentifier: "Main", sender: self)
            }


        }

    }


    @IBAction func onClickPassword(_ sender: Any) {
        if self.passwordTextfield.isSecureTextEntry == true {
            self.passwordTextfield.isSecureTextEntry = false
        }
        else {
            self.passwordTextfield.isSecureTextEntry = true

        }

    }

    override func viewDidAppear(_ animated: Bool){
        super.viewDidAppear(animated)
        if Auth.auth().currentUser != nil {
            self.performSegue(withIdentifier: "Main", sender: nil)
        }
    }

}

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...