나는 작은 프로젝트를 진행하고 있으며 Facebook/Google을 사용하여 로그인/로그인해야합니다. Google의 Firebase Auth와 함께 지금까지 완벽하게 작동했습니다.페이스 북의 사용자 정의 UIButton 로그인
기본적으로 Facebook에서 작동하므로 모든 기능이 정상입니다.
이제 좀 더 스타일을 지정하고 사용자 정의 된 모양을주고 싶습니다. 나는 그렇게 할 수없는 것 같습니다.
저는 UIButton을 만들었습니다. UIButton을 이동하고 모양을 변경하고 기본적으로 모든 것을 제어 할 수 있습니다. 내 UIButton을 정확히 네이티브 페이스 북 LoginButton과 동일하게하고 싶습니다.
나는 Facebook의 문서에 갔다. 나는 모든 것을 시도했다. 작성한 코드를 복사/붙여 넣기하면 여러 오류가 발생합니다. 내가 찾을 수있는 모든 자습서를 시도했지만 도움이되지 않았습니다. 하나의 튜토리얼은 나에게 약간의 길을 주었지만 확실히 만들지는 않았다. 복사 한 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")
}
}