0
現在、ユーザーがfirebaseを使用してFacebookにログインした後、2番目のView Controllerにセグを実行しようとしていますFacebookアカウントでログインした後にsegueを実行するにはどうすればよいですか?
これを動作させることができました。私の問題は、Segueが起動する前に実際に2回ログインしなければならないことです。助言がありますか?
あなただけviewDidAppear
でperformSegue(withIdentifier:)
を呼んでいるように見える
private var fbLoginSuccess = false //This is gobal
override func viewDidAppear(_ animated: Bool) {
if (FBSDKAccessToken.current() != nil && fbLoginSuccess == true)
{
performSegue(withIdentifier: "Home", sender: self)
}
}
@IBAction func facebookLogin(sender: UIButton) {
let facebookLogin = FBSDKLoginManager()
facebookLogin.logIn(withReadPermissions: ["public_profile", "email"], from: self, handler: {
(facebookResult, facebookError) -> Void in
if facebookError != nil {
print("Facebook login failed. Error \(String(describing: facebookError))")
} else if (facebookResult?.isCancelled)! {
print("Facebook login was cancelled.")
} else {
let credential = FacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString)
Auth.auth().signIn(with: credential) { (user, error) in
if error != nil {
print("Login failed. \(String(describing: error))")
} else {
fbLoginSuccess = true
print("Logged in!")
if (facebookResult?.grantedPermissions.contains("email"))! {
}
}
}
}
})
}
これは完全に@Jen Personになりました。あなたは最高です! –