SwiftUI:如何自定义Firebase Facebook验证登录按钮



我对SwiftUI有点陌生,遇到了一些我自己无法解决的问题。

所以我使用SwiftUI。并成功创建了一个带有firebasefacebook身份验证的登录页面。

所有的功能都很好,但我想自定义默认/内置的注销按钮。如果可能的话,只使用注销按钮。这就是我想把它改成的,它本质上只是一个带有一些文本和SF符号的Hstack

非常感谢的帮助

这是我用于身份验证的代码:

import SwiftUI
import FBSDKLoginKit
import Firebase

struct LoginView : UIViewRepresentable {
func makeCoordinator() -> LoginView.Coordinator {
return LoginView.Coordinator()

}


func makeUIView(context: UIViewRepresentableContext<LoginView>) -> FBLoginButton {
let button = FBLoginButton()
button.permissions = ["email", "public_profile"]
button.delegate = context.coordinator
return button
}

func updateUIView(_ uiView: FBLoginButton, context: UIViewRepresentableContext<LoginView>) {

}

class Coordinator : NSObject, ObservableObject,LoginButtonDelegate{
func loginButtonDidLogOut(_ loginButton: FBLoginButton) {
try! Auth.auth().signOut()
print("Did logout")  
}

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) {(res ,  er) in
if er != nil{
print((er?.localizedDescription)!)
return
}

print("SUCCES! ")
}
}
}
} 
}

你试过吗

Button(action: {
Auth.auth().signOut()
}) {
HStack{
Image(systemName: "envelope.fill")
.resizable()
.frame(width: 25, height: 17)
.foregroundColor(Color.orange.opacity(0.5))
Text("Logout")
.foregroundColor(Color.orange.opacity(0.5))
.fontWeight(.medium)
.font(.system(size: 16))
}
}

最新更新