因此,我遇到了这个问题:每次添加新用户帐户时,它都会踢出已登录的当前用户。我阅读了firebase api,并说“如果创建了新帐户,则该用户已登录自动” ,但是他们从没说过其他避免这种情况的方法。
//ADD EMPLOYEES
addEmployees: function(formData){
firebase.auth().createUserWithEmailAndPassword(formData.email, formData.password).then(function(data){
console.log(data);
});
},
我是管理员,正在向我的网站添加帐户。如果我可以在不注销并登录到新帐户的情况下添加帐户,我会很高兴。任何方式我都可以避免这种情况?
最佳答案
更新20161110-下面的原始答案
另外,请查看this answer以获取其他方法。
原始答案
这实际上是可能的。
但不是直接,做到这一点的方法是创建第二个auth引用,并使用该引用创建用户:
var config = {apiKey: "apiKey",
authDomain: "projectId.firebaseapp.com",
databaseURL: "https://databaseName.firebaseio.com"};
var secondaryApp = firebase.initializeApp(config, "Secondary");
secondaryApp.auth().createUserWithEmailAndPassword(em, pwd).then(function(firebaseUser) {
console.log("User " + firebaseUser.uid + " created successfully!");
//I don't know if the next statement is necessary
secondaryApp.auth().signOut();
});
如果您未指定用于操作的Firebase连接,则默认情况下将使用第一个。
Source用于多个应用程序引用。
编辑
对于新用户的实际创建,除了管理员之外,没有其他人或其他人可以在第二个auth引用中进行身份验证,因为创建帐户所需的全部就是auth引用本身。
以下未经测试,但值得考虑的
您要做的事情就是将数据写入Firebase。通常的做法是用户可以编辑/更新自己的用户信息,因此当您使用第二个auth引用编写此信息时,它应该可以工作。但是,如果您具有该用户的角色或权限,请确保使用具有正确权限的auth引用进行编写。在这种情况下,主要身份验证是admin,第二个身份验证是新创建的用户。