如何在不使用AngularFire2登录的情况下创建用户?

时间:2017-03-06 01:53:31

标签: angularfire2

我希望能够通过我的管理员帐户创建用户。所以当我使用这一行时:

this.af.auth.createUser({email: email, password: password});

它创建了用户,但随后它将我作为他们登录,我不想这样做。我只是想创造它。有人知道吗?

1 个答案:

答案 0 :(得分:0)

长答案:

没有AngularFire 2方式以编程方式管理用户。问题是即使您使用Firebase Admin SDK,至少有一个模块的依赖项根本不会在浏览器中运行;例如,webpack。

因此,您可以使用npm install --save firebase-admin安装Firebase管理模块,然后安装......

import * as admin from "firebase-admin";

adminCreateUser() {
    admin.auth().createUser({
        email: "user@example.com",
        emailVerified: false,
        password: "secretPassword",
        displayName: "John Doe",
        photoURL: "http://www.example.com/12345678/photo.png",
        disabled: false
    })
    .then(function(userRecord) {
        // See the UserRecord reference doc for the contents of userRecord.
        console.log("Successfully created new user:", userRecord.uid);
    })
    .catch(function(error) {
        console.log("Error creating new user:", error);
    });
}

...可能会抛出错误Error: Can't resolve 'dns' in '.../node_modules/isemail/lib'。解释原因here

你可能会为此找出某种方法,但是这个特殊问题引发了对这种用户创建方法的一个重要反对意见,这与客户端密码学有关。

简答:

改为在后端服务上运行Firebase Admin SDK。