如何在不登录firebase / js的情况下注册用户[重复]

Posted

技术标签:

【中文标题】如何在不登录firebase / js的情况下注册用户[重复]【英文标题】:how to sign up users without login in firebase/js [duplicate] 【发布时间】:2020-04-17 08:30:15 【问题描述】:

我正在开发管理员网站,实际上我需要知道如何注册用户而不丢失我的管理员注册,因为我需要让只有管理员才能创建用户帐户。 我正在使用 firebase 电子邮件/密码验证。

const CreateCh = document.querySelector('#CreateChaufeurs');

CreateCh.addEventListener('submit',(e)=>
    e.preventDefault();

//get chaufeur info
const email = CreateCh['exampleEmail11'].value;
const password = CreateCh['examplePassword11'].value;
const Fname = CreateCh['Fname'].value;
const Address = CreateCh['exampleAddress'].value;
const Tel = CreateCh['exampleAddress2'].value;
const Ville = CreateCh['exampleCity'].value;
const Etat = CreateCh['exampleState'].value;
const Cp = CreateCh['exampleZip'].value;
const AGE = CreateCh['AGE'].value;
console.log(password, email, Fname,AGE,Address,Tel,Ville,Etat,Cp );
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) 
    // Handle Errors here.
    var errorCode = error.code;
    var errorMessage = error.message;
    // ...
  );
);

但在创建帐户后,它会自动使用该新帐户登录。

【问题讨论】:

你到底想要什么? 我想在不更改管理员登录名的情况下创建帐户。问题是当管理员创建一个新帐户时,会话将转换为新用户帐户,我不希望这种情况发生,我希望管理员只是让他留下新帐户我 哪个会话?。 我的意思是验证器(我尝试自动创建新用户帐户,此帐户替换管理员帐户,我需要停止) 【参考方案1】:

您可以初始化一个单独的 Firebase SDK 实例来处理您的所有帐户创建请求。

以最简单的形式,您可以使用:

let authWorkerApp = firebase.initializeApp(firebase.app().options, 'auth-worker');
let authWorkerAuth = firebase.auth(authWorkerApp);
authWorkerAuth.setPersistence(firebase.auth.Auth.Persistence.NONE); // disables caching of account credentials

authWorkerAuth.createUserWithEmailAndPassword(email, password).catch(function(error) 
    // Handle Errors here.
    var errorCode = error.code;
    var errorMessage = error.message;
    // ...
);

如果遇到Firebase app 'auth-worker' is already initialised等错误,可以将其包装在安全的getter中以避免此类错误:

function getFirebaseApp(name, config) 
    let foundApp = firebase.apps.find(app => app.name === name);
    return foundApp ? foundApp : firebase.initializeApp(config || firebase.app().options, 'auth-worker');


let authWorkerApp = getFirebaseApp('auth-worker');

【讨论】:

当我插入 auth-worker 时没有什么不同; dropbox.com/s/8ahkxpgtyss35or/Capture.PNG?dl=0 在我创建新用户时查看图片 admin 更改为 Not admin 您无法正确使用上面的代码,因为之前的控制台消息表明您正在使用的 firebaseApp 名为 [DEFAULT] 而不是 auth-worker @alabouhajja 你能链接auth.js的前10行左右吗? 好的,但是当我将 firebase.auth().createUserWithEmailAndPassword 更改为 authWorkerAuth.createUserWithEmailAndPassword 时,它仍然存在一些问题

以上是关于如何在不登录firebase / js的情况下注册用户[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在不登录的情况下注册新用户?

您好,我是 Flutter 新手,仍在练习基础知识。我想学习如何在不使用 firebase auth 的情况下在登录页面上设置默认凭据

如何在不请求的情况下在firebase-auth中首次加载时获取currentUser

用户是不是可以在不安装您的应用的情况下通过 Firebase Auth 注册新帐户?

如何在不退出的情况下使用 Firebase API 创建新用户? [复制]

如何在不使用 Firebase 身份验证的情况下保护 Firebase 存储? (下一个)