私は少しのプロジェクトに取り組んでおり、Facebook/Googleを使ってログイン/ログインする人が必要です。 GoogleのFirebase Authとこれまで完全に連携してきました。FacebookログインのためのカスタムUIButton
私は基本的にFacebookで働くので、すべての機能は大丈夫です。
私はこれを少し「スタイル」し、カスタマイズした外観を与えたいと思います。私はそれが起こるように見えることはできません。
私はUIButtonを作っています。私は動き回り、形を変えて、基本的にすべてをコントロールできます。 UIButtonをという正確なのネイティブFacebook LoginButtonと同じようにしたいと思います。
私はFacebook独自のドキュメントに行きました。私はすべてを試みた。彼らが書いたコードをコピー/貼り付け、複数のエラーを出します。私は見つけることができるすべてのチュートリアルを試みたが、何も助けなかった。 1つのチュートリアルでは私にはちょっとしたことがありましたが、それほど効果がありませんでした。 コピーしたFacebookのコード:https://developers.facebook.com/docs/swift/login
ありがとう、私は誰かが私を助けることを願っています。ここで
ことができますならば、私のコードです:
import UIKit
import FacebookLogin
import FacebookCore
import FBSDKLoginKit
import FBSDKCoreKit
import FirebaseAuth
class ViewController: UIViewController, FBSDKLoginButtonDelegate {
let loginButton: FBSDKLoginButton = FBSDKLoginButton()
@IBOutlet weak var SpinnerLogin: UIActivityIndicatorView!
override func viewDidLoad() {
super.viewDidLoad()
loginButton.isHidden = true
FIRAuth.auth()?.addStateDidChangeListener { auth, user in
if let user = user {
// User is signed in.
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let homeViewController: UIViewController = mainStoryboard.instantiateViewController(withIdentifier: "HomeView")
self.present(homeViewController, animated: true, completion: nil)
} else {
// No user is signed in.
self.loginButton.readPermissions = ["public_profile", "email", "user_friends" ]
self.loginButton.center = self.view.center
self.loginButton.delegate = self
self.view.addSubview(self.loginButton)
self.loginButton.isHidden = false
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//Tells us if person is logged in
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
self.loginButton.isHidden = true
if (error != nil) {
//Handle error
self.loginButton.isHidden = false
}
else if (result.isCancelled) {
//Handle cancel event
self.loginButton.isHidden = false
}
else {
SpinnerLogin.startAnimating()
let credential = FIRFacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString)
FIRAuth.auth()?.signIn(with: credential) { (user, error) in
print("User Logged in to Facebook")
print("You are now signed in to Firebase")
}
}
}
//Tells us if person logged out
func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) {
print("User did log out")
}
}