Я пытаюсь настроить кнопку входа в Facebook, но не могу понять, как это сделать. Я хочу вызвать функцию входа в свое пользовательское действие кнопки, чтобы иметь возможность войти в систему.
Button(action: {
print("Pressed!")
}){
Text("Facebook")
.frame(width: 100, height: 100)
.foregroundColor(Color.white)
.background(Color.blue)
.clipShape(Circle())
}
Это моя пользовательская кнопка, в которую я хочу войти через Facebook.
struct login : UIViewRepresentable {
func makeCoordinator() -> login.Coordinator {
return login.Coordinator()
}
func makeUIView(context: UIViewRepresentableContext<login>) -> FBLoginButton {
let button = FBLoginButton()
button.permissions = ["email"]
button.delegate = context.coordinator
return button
}
func updateUIView(_ uiView: FBLoginButton, context: UIViewRepresentableContext<login>) {
}
class Coordinator : NSObject, LoginButtonDelegate {
func loginButton(_ loginButton: FBLoginButton, didCompleteWith result: LoginManagerLoginResult?, error: Error?) {
if error != nil {
print((error?.localizedDescription)!)
return
}
if AccessToken.current != nil {
let credential = FacebookAuthProvider.credential(withAccessToken: AccessToken.current!.tokenString)
Auth.auth().signIn(with: credential) { (response, error) in
if error != nil {
print(error?.localizedDescription)
return
}
print("Success")
print(response?.user.displayName)
print(response?.user.photoURL)
}
}
}
func loginButtonDidLogOut(_ loginButton: FBLoginButton) {
try! Auth.auth().signOut()
}
}
}
Я думаю, что мне нужно обновить makeUIView, чтобы вернуть мою пользовательскую кнопку, но я не могу понять, как заставить ее работать должным образом. Спасибо.