带有新Firebase的iOS自定义Facebook登录按钮

时间:2016-08-09 10:22:49

标签: ios facebook firebase-authentication

如何获得自定义Facebook登录按钮以使用新的firebase?

根据新的firebase文档,我们创建了一个FBSDKLoginButton并设置了它的委托。 FBSDKLoginButton在外观方面不可定制。

2 个答案:

答案 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按钮设置为隐藏。

enter image description here

接下来,通过将UITapGestureRecognizer对象拖放到自定义按钮或图像的顶部,来添加UITapGestureRecognizer对象。

enter image description here

别忘了将图像设置为“启用用户交互”!

enter image description here

接下来,将UITapGestureRecognizer从情节提要中拖放到控制器中,作为具有UITapGestureRecognizer类型的动作。

enter image description here

最后,在此IBAction内部执行以下操作以触发现有的Firebase FBLoginButton。

@IBAction func customFBButtonPressed(_ sender: UITapGestureRecognizer) { 
    //Reference and fire the original fbLoginButton that you already set up.       
    fbLoginButton.sendActions(for: .touchUpInside)
}