Firebase выводит текущего пользователя из системы при создании нового

Я создаю приложение для iPhone, в котором пользователь-администратор может создавать новых пользователей, но, как указано в документации Firebase, «Если новая учетная запись была создана, пользователь входит в систему автоматически», поэтому я ищу для того, чтобы избежать входа в систему для этого вновь созданного пользователя.

Есть ли способ избежать этого без использования нового Firebase Admin SDK (то есть только для Интернета, AFAIK)?


person Jonathan Cabrera    schedule 14.12.2016    source источник
comment
SDK Firebase Admin предназначен для работы на сервере node.js (это не значит, что он предназначен только для Интернета). Но если вам нужен только клиентский подход, это действительно не сработает. Вы могли бы попробовать что-то подобное: http://stackoverflow.com/questions/37517208/firebase-kicks-out-current-user   -  person Frank van Puffelen    schedule 15.12.2016


Ответы (2)


Вы можете решить эту проблему несколькими способами:

Вариант 1. Надежно сохраните учетные данные администратора на вашем устройстве. Затем, когда пользователь создает нового пользователя, войдите в систему с учетными данными администратора. Это приведет к выходу из системы и немедленному входу в систему.

Вариант 2: используйте admin sdk для создания пользователя с вызовом rest API на веб-стороне.

person Dupinder kaur    schedule 15.12.2016
comment
Спасибо! Я думаю, что сохранение учетных данных на устройстве, даже когда это делается безопасно, немного опасно, и у меня нет веб-части, поскольку я использую Firebase в качестве серверной части, но эти два варианта будут работать. - person Jonathan Cabrera; 16.12.2016
comment
Поставьте, пожалуйста, галочку напротив правильного ответа. заранее спасибо - person Dupinder kaur; 16.12.2016

У меня есть этот умный обходной путь Javascript, работающий для iOS. Безупречно работает:

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist"];
FIROptions *secondaryAppOptions = [[FIROptions alloc] initWithContentsOfFile:plistPath];
[FIRApp configureWithName:@"Secondary" options:secondaryAppOptions];
FIRApp *secondaryApp = [FIRApp appNamed:@"Secondary"];
FIRAuth *secondaryAppAuth = [FIRAuth authWithApp:secondaryApp];

[secondaryAppAuth createUserWithEmail:user.email
                             password:user.password
                           completion:^(FIRUser * _Nullable user, NSError * _Nullable error) {
                                [secondaryAppAuth signOut:nil];
                          }];
person Jonathan Cabrera    schedule 15.12.2016