Создание пользователя в React Firebase Auth

Я создал внутреннее приложение, тогда как пользователи создаются администратором, использующим веб-приложение. Однако всякий раз, когда я создаю нового пользователя, firebase автоматически меняет пользователя на пользователя, с которым я вошел в систему, а это не то, что я хочу. Кто-нибудь знает, как я могу создать учетную запись пользователя в Firebase Auth без аутентификации в этой учетной записи сразу после ее создания и оставаться в учетной записи, с которой я вошел в систему?

Для дальнейшего уточнения, Я получаю эту ошибку:

Uncaught (in promise) FirebaseError: Firebase: Firebase App named '[DEFAULT]' already exists with different options or config (app/duplicate-app).

Найдите код на прикрепленной картинке Текущий код

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Одним из обходных путей, который приходит на ум, было бы создание экземпляров отдельных приложений Firebase в вашем коде. Основное приложение firebase будет реальным, в которое входит администратор, а другие будут создаваться по запросу для использования для создания нового пользователя, а затем выбрасываются. Поскольку создание учетной записи происходит в других приложениях, администратор не должен выходить из основного приложения.

Например:

import { initializeApp } from 'firebase/app';
import { getAuth, signInWithEmailAndPassword } from 'firebase/auth';

let counter = 0; // Used to give every app a unique name
function createUser(email, password) {
  counter++;
  const app = initializeApp({
    apiKey: // ...
    authDomain: // ...
    //etc
  }, '' + counter);

  const auth = getAuth(app);
  signInWithEmailAndPassword(auth, email, password);
  // app never gets used again after this. 
}

Привет, я обновил свой вопрос выше. Я уже пробовал этот метод, и я получаю сообщение об ошибке

der 28.03.2022 10:59

Вам нужно дать каждому приложению уникальное имя, как в моем примере.

Nicholas Tower 28.03.2022 13:33

Здравствуйте Николай, спасибо за ответ! Я пробовал это, у меня есть значение по умолчанию, которое является приложением, тогда приложение, которое я инициализирую для этой функции, называется вторичным приложением. Это то, что вы имели в виду?

der 29.03.2022 04:06

Когда вы вызываете initializeApp, вы можете передать ему второй параметр. Это название приложения. В моем примере это имя '' + counter, что гарантирует его уникальность каждый раз. Если вы не передадите имя, то firebase инициализирует приложение по умолчанию. Вы можете инициализировать приложение только один раз, поэтому, если вы попытаетесь инициализировать одно и то же приложение, вы получите показанную ошибку.

Nicholas Tower 29.03.2022 04:53

Другие вопросы по теме