我已经在仅限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,您需要做一些事情:
- 在
.plist
文件中,您必须将"FacebookAppID"和"FacebookDisplayName"键设置为您的Facebook应用程序ID和显示名称,并且它们应与您的Facebook应用程序设置完全匹配。 - 在
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。
希望对您有所帮助!