Задать вопрос
@rifat2125

Как создать пользователя Firebase, но не производить авторизацию?

Здравствуйте!
Хочу сделать создание пользователей системы в качестве Админа. То есть я админ и создаю пользователей, для последующей передачи данных человеку.

Я использую этот метод.
createUserWithEmailAndPassword(auth, formData.email, formData.password);


Пользователь создается, но при этом сразу создается авторизация для данного пользователя и из текущего профиля меня выкидывает. Как создать новый аккаунт, но при этом сохранить свою авторизацию?
  • Вопрос задан
  • 143 просмотра
Подписаться 2 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Frontend-разработчик
    9 месяцев
    Далее
  • Loftschool
    Профессия Веб-разработчик
    7 месяцев
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
Решения вопроса 1
@rifat2125 Автор вопроса
Кому интересно, решение нашел следующее (ОСТОРОЖНО костыль):
firebase.js
import { initializeApp } from 'firebase/app';
import { getAuth } from 'firebase/auth';
import { getDatabase } from 'firebase/database';

const config = {...} // Файл конфигурации firebase

const firebaseApp = initializeApp(config);
const secondFirebaseApp = initializeApp(config, 'secondary'); // Делаем вторую инициализацию и указываем второй параметр

const auth = getAuth(firebaseApp);
const secondAuth = getAuth(secondFirebaseApp); // Инициализируем второй объект авторизации
const database = getDatabase(firebaseApp);

export { firebaseApp, auth, database, secondAuth };


Код создания пользователя
import { createUserWithEmailAndPassword, signOut } from 'firebase/auth';
import { database, secondAuth } from '@/utils/firebase';
import { onValue, ref, set } from 'firebase/database';

...
// Код внутри метода
// Используем второй экземпляр авторизации
const response = await createUserWithEmailAndPassword(secondAuth, formData.email, formData.password);
const uid = response.user.uid;
await set(ref(database, `/users/${uid}/info`), formData);
await signOut(secondAuth);


В таком варианте создание нового пользователя без его последующей авторизации работает.

P.S. Решение не моё. Нашел на stackoverflow. Немного пришлось подправить код под себя.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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