如何获得自定义Facebook登录按钮以使用新的firebase?
根据新的firebase文档,我们创建了一个FBSDKLoginButton并设置了它的委托。 FBSDKLoginButton在外观方面不可定制。
答案 0 :(得分:2)
只需创建自定义UIButton并将其连接到以下方法即可。
在此处阅读有关facebook-login的自定义按钮的更多信息:https://developers.facebook.com/docs/facebook-login/ios#custom-login-button
#import <FBSDKLoginKit/FBSDKLoginKit.h>
- (IBAction)facebookLoginPressed:(id)sender{
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login
logInWithReadPermissions: @[@"public_profile"]
fromViewController:self
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
NSLog(@"Process error");
} else if (result.isCancelled) {
NSLog(@"Cancelled");
} else {
NSLog(@"Logged in");
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
}
}];
}
答案 1 :(得分:0)
尝试了好一阵子之后,我发现一项不错的工作对您和其他希望实现同一目标的人很有用。假设您已经将每个Firebase文档的Facebook Button集成到项目中,并在控制器中为其创建了IBOutlet按钮。
首先,将自定义图像或按钮添加到视图中。就我而言,这是一张图片。您还可以将现有的FB按钮设置为隐藏。
接下来,通过将UITapGestureRecognizer对象拖放到自定义按钮或图像的顶部,来添加UITapGestureRecognizer对象。
别忘了将图像设置为“启用用户交互”!
接下来,将UITapGestureRecognizer从情节提要中拖放到控制器中,作为具有UITapGestureRecognizer类型的动作。
最后,在此IBAction内部执行以下操作以触发现有的Firebase FBLoginButton。
@IBAction func customFBButtonPressed(_ sender: UITapGestureRecognizer) {
//Reference and fire the original fbLoginButton that you already set up.
fbLoginButton.sendActions(for: .touchUpInside)
}