如何在Firebase/JavaScript中实现用户注册而无需登录
如何在Firebase/JavaScript中实现用户注册而无需登录
我正在开发管理员网站,实际上我需要知道如何在不失去我的管理员注册的情况下注册用户,因为我只想让管理员能够创建用户账户。
我正在使用Firebase的电子邮件/密码认证。
const CreateCh = document.querySelector('#CreateChaufeurs'); CreateCh.addEventListener('submit',(e)=>{ e.preventDefault(); //获取司机信息 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) { // 处理错误 var errorCode = error.code; var errorMessage = error.message; // ... }); });
但是在创建账户后,它会自动使用该新账户登录。
问题的出现原因:用户在使用Firebase和JavaScript进行注册时遇到了一些问题,他们尝试使用不同的方式进行账户创建,但是一直遇到错误。
解决方法:可以初始化一个独立的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"这样的错误,可以使用以下代码来解决:
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.js的代码。最后,用户被建议清除缓存并重新开始,以管理员身份登录并进行测试。
最后,用户表示感谢对方的帮助。