因此,我遇到了这个问题:每次添加新用户帐户时,它都会踢出已登录的当前用户。我阅读了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,第二个身份验证是新创建的用户。

10-05 20:27
查看更多