调用方法createUserWithEmailAndPassword而不执行signIn

问题描述 投票:1回答:3

在我的系统中,我需要从经过身份验证的用户创建用户,但为此我需要通过createUserWithEmailAndPassword方法创建用户,当我通过此方法创建用户时,身份验证状态将更改为此时创建的用户。

有没有办法从经过身份验证的用户创建用户而不为createUserWithEmailAndPassword方法创建后创建的用户创建signIn?

我有一个在Angular + Node.js中开发的系统

  createUser(user: Usuario): Promise<firebase.auth.UserCredential> {
    return this._angularFireAuth.auth.createUserWithEmailAndPassword(user.email, user.password);
  }
angular firebase firebase-authentication
3个回答
0
投票

[回答]

您可以在客户端中创建新的Firebase应用程序上下文,然后再次调用createUserWithEmailAndPassword()。这不会对创建的新用户重新进行身份验证。 Reference

var authApp = firebase.initializeApp({
// ...
}, 'authApp');
var detachedAuth = authApp.auth();

detachedAuth.createUserWithEmailAndPassword('[email protected]', 'asuperrandompassword');

这样做的潜在问题是:Firebase App named '[DEFAULT]' already exists (app/duplicate-app)

[其他情景(供其他人参考)]

我猜你是其中一个:

  1. 您希望登录用户即使在关闭浏览器后也保持登录状态。如果是这种情况,您可以使用firebase auth提供的持久性。
  2. 当用户状态从“未登录”更改为“已登录”时,您希望隐藏登录按钮。然后你可以查看这个post
  3. 其他参考:How to keep user logged in with Firebase no matter what?

希望能帮助到你!


0
投票

听起来像管理员功能。见Introduction to the Admin Auth API

User Management

要访问Firebase控制台以管理Firebase用户并不总是很方便。管理员用户管理API提供对这些相同用户的编程访问。它甚至允许您执行Firebase控制台无法执行的操作,例如检索用户的完整数据以及更改用户的密码,电子邮件地址或电话号码。


0
投票

创建用户后,您需要调用signInWithEmailAndPassword登录。

    signInFirebaseWithEmailAndPassword(
       userName: string,
       password: string
    ): Promise<firebase.auth.UserCredential> {
       return this._angularFireAuth.auth.signInWithEmailAndPassword(userName, password);
    }
© www.soinside.com 2019 - 2024. All rights reserved.