我已经在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];
}
}];
问题是什么,这只适用于用户在iOS系统Facebook集成上登录Facebook的情况。如果用户未登录,并且安装了Facebook应用程序,则用户将被转移到该应用程序,但是当用户批准并且我的应用程序再次打开时,永远不会调用完成块。
即使没有安装Facebook App,Facebook也会在Safari中打开,如果我从safari登录到facebook并批准我的应用程序,当我的应用程序打开时,不会调用完成块。
在应用程序中添加或删除FacebookSDK没有任何区别。
答案 0 :(得分:0)
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。
希望有所帮助!