Firebase简单登录iOS问题

时间:2014-04-02 13:51:19

标签: ios iphone facebook ios7 firebase

我已经在iOS 7 Only应用程序的iPhone应用程序中实现了适用于iOS的Firebase简单登录。

这是用户尝试登录时调用的代码,

[self.authClient loginToFacebookAppWithId:kFacebookAppID permissions:@[@"email"]
                            audience:ACFacebookAudienceOnlyMe
                 withCompletionBlock:^(NSError *error, FAUser *user) {
                     if (error != nil) {
                         // There was an error logging in
                         NSLog(@"Error FB Login");
                         [MBProgressHUD hideHUDForView:self.view animated:NO];
                         [self showErrorAlertViewWithText:@"You aren't logged into Facebook on your Phone. Please go to your iPhone Settings->Facebook and login"];
                     } else {
                         // We have a logged in facebook user
                         NSLog(@"Facebook Login Successful");

                         //Time to check if its a new user or old one
                         [self checkIfNewUserOrOldWithUserId:user];

                     }
                 }];
  • authClient是一个FirebaseSimpleLogin类对象,该对象已初步确定
  • 我已尝试同时实施和移除了FacebookSDK(FirebaseSimpleLogin库本应该倒退)
  • 我在真实设备上测试

问题是什么,这只适用于用户在iOS系统Facebook集成上登录Facebook的情况。如果用户未登录,并且安装了Facebook应用程序,则用户将被转移到该应用程序,但是当用户批准并且我的应用程序再次打开时,永远不会调用完成块。

即使没有安装Facebook App,Facebook也会在Safari中打开,如果我从safari登录到facebook并批准我的应用程序,当我的应用程序打开时,不会调用完成块。

在应用程序中添加或删除FacebookSDK没有任何区别。

1 个答案:

答案 0 :(得分:0)

Firebase最近发布了适用于iOS的Simple Login v1.3.1,您可以在https://cdn.firebase.com/ios/FirebaseSimpleLogin.framework-LATEST.zip下载最新版本。

要在iOS上启动并运行Firebase Simple Login和Facebook SDK,您需要执行以下操作:

  1. .plist文件中,您必须拥有' FacebookAppID'和' FacebookDisplayName'键设置为您的Facebook应用程序ID和显示名称,它们应完全匹配您的Facebook应用程序设置。
  2. 在您的AppDelegate.m文件中,您必须处理从Facebook到您的应用程序的重定向:
  3. `

    #import <FacebookSDK/FacebookSDK.h>
    
    @implementation AppDelegate
    
    // your code here ...
    
    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
      sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
        BOOL wasHandled = [FBAppCall handleOpenURL:url sourceApplication:sourceApplication];
    
        // add any app-specific handling code here
        return wasHandled;
    }
    
    @end
    

    注意:这假设您的应用已经有Firebase和Firebase简单登录框架,如果您需要说明,请参阅https://www.firebase.com/docs/ios-quickstart.html

    希望有所帮助!