Firebase Simple Login iOS Issue



我已经在仅限iOS 7的应用程序上的iPhone应用程序中实现了适用于iOS的Firebase Simple Login。

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

[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没有任何区别。

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 到应用程序的重定向:

'

#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。

希望对您有所帮助!

最新更新