Реагировать с новой базой пользователей firebase будет столкновение с onAuthStateChanged observer [duplicate]

Свойство box-align CSS3

#outer {
    width:100%;
    height:100%;
    display:box;
    box-orient:horizontal;
    box-pack:center;
    box-align:center;
}

31
задан Frank van Puffelen 3 June 2016 в 12:12
поделиться

8 ответов

Вот адаптация Swift 3 ответа Кабреры :

let bundle = Bundle.main
        let path = bundle.path(forResource: "GoogleService-Info", ofType: "plist")!
        let options = FIROptions.init(contentsOfFile: path)
        FIRApp.configure(withName: "Secondary", options: options!)
        let secondary_app = FIRApp.init(named: "Secondary")
        let second_auth = FIRAuth(app : secondary_app!)
        second_auth?.createUser(withEmail: self.username.text!, password: self.password.text!)
        {
            (user,error) in
            print(user!.email!)
            print(FIRAuth.auth()?.currentUser?.email ?? "default")
        }
58
ответ дан Community 21 August 2018 в 00:12
поделиться

Я получил очень умное обходное решение André , работающее в Objective-C с использованием SDK Firebase 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];
                          }];
3
ответ дан André Kool 21 August 2018 в 00:12
поделиться

Обновление для Swift 4

Я попробовал несколько разных вариантов создания нескольких пользователей из одной учетной записи, но это, безусловно, лучшее и самое простое решение.

Оригинальный ответ Nico

Сначала сконфигурируйте firebase в файле AppDelegate.swift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    FirebaseApp.configure()
    FirebaseApp.configure(name: "CreatingUsersApp", options: FirebaseApp.app()!.options)

    return true
}

Добавьте следующий код в действие, в котором вы создаете учетные записи.

            if let secondaryApp = FirebaseApp.app(name: "CreatingUsersApp") {
                let secondaryAppAuth = Auth.auth(app: secondaryApp)

                // Create user in secondary app.
                secondaryAppAuth.createUser(withEmail: email, password: password) { (user, error) in
                    if error != nil {
                        print(error!)
                    } else {
                        //Print created users email.
                        print(user!.email!)

                        //Print current logged in users email.
                        print(Auth.auth().currentUser?.email ?? "default")

                        try! secondaryAppAuth.signOut()

                    }
                }
            }
        }
1
ответ дан BSlade 21 August 2018 в 00:12
поделиться

Если вы используете Polymer и Firebase (полимерный огонь), см. этот ответ: https://stackoverflow.com/a/46698801/1821603

По существу вы создаете вторичный <firebase-app> для обработки новой регистрации пользователя, не затрагивая текущего пользователя.

0
ответ дан Evan Caldwell 21 August 2018 в 00:12
поделиться

Обновление 20161108 - оригинальный ответ ниже

Firebase только что выпустила свой SDK firebase-admin, который позволяет использовать код на стороне сервера для этого и других распространенных административных прецедентов. Прочтите инструкции по установке , а затем погрузитесь в документацию по созданию пользователей .

исходный ответ

В настоящее время невозможно. Создание пользователя Email + Password автоматически подписывает нового пользователя.

15
ответ дан Frank van Puffelen 21 August 2018 в 00:12
поделиться

Версия Swift:

FIRApp.configure()

// Creating a second app to create user without logging in
FIRApp.configure(withName: "CreatingUsersApp", options: FIRApp.defaultApp()!.options)

if let secondaryApp = FIRApp(named: "CreatingUsersApp") {
    let secondaryAppAuth = FIRAuth(app: secondaryApp)
    secondaryAppAuth?.createUser(...)
}
0
ответ дан Nico 21 August 2018 в 00:12
поделиться

Я столкнулся с той же проблемой, и я решил это следующим образом:

Когда пользователь вводит логин, я сохраняю адрес электронной почты и пароль в общих настройках. И после создания пользователя я снова вхожу в систему с помощью электронной почты и пароля, которые я сохранил ранее.

    String currentEmail = MyApp.getSharedPreferences().getEmail();
    String currentPass = MyApp.getSharedPreferences().getPass();

    FirebaseAuth auth = FirebaseAuth.getInstance();
    auth.createUserWithEmailAndPassword(email, pass)
            .addOnCompleteListener(AddStudent.this, new OnCompleteListener<AuthResult>() {

                @Override
                public void onComplete(@NonNull final Task<AuthResult> task) {

                    if (task.isSuccessful()) {
                        String currentEmail = MyApp.getSharedPreferences().getEmail();
                        String currentPass = MyApp.getSharedPreferences().getPass();

                        //Sign in again
                        auth.signInWithEmailAndPassword(currentEmail, currentPass)
                                .addOnCompleteListener(AddStudent.this, new OnCompleteListener<AuthResult>() {
                                    @Override
                                    public void onComplete(@NonNull Task<AuthResult> task) {
                                        if (!task.isSuccessful()) {
                                            Log.e("RELOGIN", "FAILED");
                                        } else {
                                            Log.e("RELOGIN", "SUCCESS");
                                        }
                                    }
                                });

                        finish();
                    }
                }
    });
-2
ответ дан Sayed Hameed Ebrahim 21 August 2018 в 00:12
поделиться

У меня была аналогичная проблема, поэтому я задал вопрос в сообществе Firebase Slack. Я реализовал это и работает как шарм.

3
ответ дан srijanshukla 21 August 2018 в 00:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: