使用Facebook设置适用于iOS的Firebase简单登录

时间:2013-03-27 10:13:50

标签: ios facebook firebase

我是第一次使用iOS设置Firebase,我在使用Facebook身份验证设置进行简单登录方面遇到了一些问题。

问题

我在模拟器中运行 - 这可能是我的问题,因为模拟器没有Facebook应用程序或Facebook集成?但我目前没有Apple Developer帐户。

我希望这会触发Facebook应用中的Facebook身份验证视图,或者如果设备上没有安装该应用,请切换到Safari并使用正常的身份验证页面,但没有任何反应。

设置

据我所知,这些是让它运行的最低要求:

  1. Facebook应用程序:
  2. 一个iOS项目:
    • 将二进制文件与库链接:
      • Firebase.framework
      • Foundation.framework(显然...... :))
      • libicucore.lib
      • Security.framework
      • CFNetwork.framework
      • FirebaseAuthClient.framework
      • Accounts.framework
      • Social.framework
    • - 其他链接器标志下的-ObjC
    • 将Bundle标识符与Facebook app Bundle ID匹配
  3. Facebook应用ID和App Secret已添加到Firebase Forge中的Auth
  4. 在此处查看我的Facebook应用设置(屏幕截图):http://flashpatric.com/wp-content/uploads/2013/03/facebookSetup.png

    代码:

    Firebase* ref = [[Firebase alloc] initWithUrl:@"https://xxx.firebaseio.com"];
    FirebaseAuthClient* authClient = [[FirebaseAuthClient alloc] initWithRef:ref];
    
    [authClient loginToFacebookAppWithId:@"xxx-facebook-app-id-xxx" permissions:@[@"email"] withCompletionBlock:^(NSError *error, FAUser *user) {
        if (error != nil) {
            // There was an error logging in
            NSLog(@"There was an error logging in: code = %d", [error code]);
            NSLog(@"%@", error);
        } else {
            // We have a logged in facebook user
            NSLog(@"We have a logged in facebook user: %@",user);
        }
    }];
    
    [authClient checkAuthStatusWithBlock:^(NSError* error, FAUser* user) {
        if (error != nil) {
            NSLog(@"Oh no! There was an error performing the check %@",error);
        } else if (user == nil) {
            NSLog(@"No user is logged in");
        } else {
            NSLog(@"There is a logged in user %@",user);
        }
    }];
    

    输出:

    2013-03-27 11:10:08.900 firebase[18729:1303] There was an error logging in: code = 6
    2013-03-27 11:10:08.905 firebase[18729:1303] Error Domain=com.apple.accounts Code=6 The operation couldn’t be completed. (com.apple.accounts error 6.)
    2013-03-27 11:10:08.924 firebase[18729:c07] No user is logged in
    

    好的,我在这里遗漏了一些明显的东西,还是只是iOS模拟器问题,这是我的问题?

1 个答案:

答案 0 :(得分:2)

您需要使用Facebook身份验证,这应该可以在模拟器上运行:

  1. Facebook上的应用设置。听起来你已经有了这个
  2. 在您的模拟器上设置Facebook帐户。目前,FirebaseAuthClient不与Facebook应用程序交互,它只使用iOS内置的本机Facebook集成。
  3. 确保您拥有最新版本的FirebaseAuthClient。截至目前,它是1.0.1,你可以在这里得到它:https://www.firebase.com/docs/downloads.html
  4. 确保您已在Forge中启用了Facebook身份验证。根据您的描述,您似乎已经完成了这项工作。
  5. 我的猜测,从你得到的错误来看,你错过了第2步。在你的模拟器上,转到设置 - > Facebook并登录一个帐户。