如何在 objective c 中从 Firebase Auth 中删除 "Sign In with Email"
How to remove "Sign In with Email" from Firebase Auth in objective c
我通过 google 和 facebook 使用登录,因此我使用 firebase Ui 身份验证。我做对了,但我不想在登录页面中使用 "Sign In with Email" 按钮。我的登录页面是
我的代码如下,
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"%s","viewDidLoad");
authUI = [FUIAuth defaultAuthUI];
authUI.delegate = self;
NSArray<id<FUIAuthProvider>> *providers = @[[[FUIGoogleAuth alloc] init],[[FUIFacebookAuth alloc] init]];
authUI.providers = providers;
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
NSLog(@"%s","viewDidAppear");
NSLog([self isUserSignedIn] ? @"YES":@"NO");
if([self isUserSignedIn] == false){
[self showLoginView];
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(BOOL)isUserSignedIn{
NSLog(@"%s","isUserSignedIn");
FIRUser *currentUser = [[FIRAuth auth] currentUser];
NSLog(@"%@",currentUser);
if(currentUser == NULL){
return false;
}
else{
return true;
}
}
-(void)showLoginView{
NSLog(@"%s","showLoginView");
UINavigationController *controller = [authUI authViewController];
if(controller){
[self presentViewController:controller animated:YES completion:nil];
}
}
- (void)authUI:(FUIAuth *)authUI didSignInWithUser:(nullable FIRUser *)user error:(nullable NSError *)error {
if (error == nil) {
NSLog(@"%@",user.email);
NSLog(@"%@",user.displayName);
}
else{
NSLog(@"%@",error);
}
}
- (IBAction)signOut:(id)sender {
NSError *signOutError;
BOOL status = [[FIRAuth auth] signOut:&signOutError];
if (!status) {
NSLog(@"Error signing out: %@", signOutError);
return;
}
else{
NSLog(@"SignedOut");
}
}
在AppDelegate.m中添加,
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options {
NSString *sourceApplication = options[UIApplicationOpenURLOptionsSourceApplicationKey];
NSLog(@"%@",url);
return [[FUIAuth defaultAuthUI] handleOpenURL:url sourceApplication:sourceApplication];
}
如何删除 "Sign in with email"。我只添加了 google 和 Facebook 作为提供者,为什么登录页面会显示这个额外的按钮?
FUIAuth *authUI = [FUIAuth defaultAuthUI];
authUI.signInWithEmailHidden = YES;
从视图中删除了 "Sign in with email" 按钮。
我通过 google 和 facebook 使用登录,因此我使用 firebase Ui 身份验证。我做对了,但我不想在登录页面中使用 "Sign In with Email" 按钮。我的登录页面是
我的代码如下,
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"%s","viewDidLoad");
authUI = [FUIAuth defaultAuthUI];
authUI.delegate = self;
NSArray<id<FUIAuthProvider>> *providers = @[[[FUIGoogleAuth alloc] init],[[FUIFacebookAuth alloc] init]];
authUI.providers = providers;
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
NSLog(@"%s","viewDidAppear");
NSLog([self isUserSignedIn] ? @"YES":@"NO");
if([self isUserSignedIn] == false){
[self showLoginView];
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(BOOL)isUserSignedIn{
NSLog(@"%s","isUserSignedIn");
FIRUser *currentUser = [[FIRAuth auth] currentUser];
NSLog(@"%@",currentUser);
if(currentUser == NULL){
return false;
}
else{
return true;
}
}
-(void)showLoginView{
NSLog(@"%s","showLoginView");
UINavigationController *controller = [authUI authViewController];
if(controller){
[self presentViewController:controller animated:YES completion:nil];
}
}
- (void)authUI:(FUIAuth *)authUI didSignInWithUser:(nullable FIRUser *)user error:(nullable NSError *)error {
if (error == nil) {
NSLog(@"%@",user.email);
NSLog(@"%@",user.displayName);
}
else{
NSLog(@"%@",error);
}
}
- (IBAction)signOut:(id)sender {
NSError *signOutError;
BOOL status = [[FIRAuth auth] signOut:&signOutError];
if (!status) {
NSLog(@"Error signing out: %@", signOutError);
return;
}
else{
NSLog(@"SignedOut");
}
}
在AppDelegate.m中添加,
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options {
NSString *sourceApplication = options[UIApplicationOpenURLOptionsSourceApplicationKey];
NSLog(@"%@",url);
return [[FUIAuth defaultAuthUI] handleOpenURL:url sourceApplication:sourceApplication];
}
如何删除 "Sign in with email"。我只添加了 google 和 Facebook 作为提供者,为什么登录页面会显示这个额外的按钮?
FUIAuth *authUI = [FUIAuth defaultAuthUI];
authUI.signInWithEmailHidden = YES;
从视图中删除了 "Sign in with email" 按钮。