【问题标题】:Create user with email and password using angular 5 firebase使用 Angular 5 firebase 创建具有电子邮件和密码的用户
【发布时间】:2018-10-06 04:39:11
【问题描述】:

我想用电子邮件和密码创建一个用户更多其他数据,例如姓名 在我的界面中,我有这个:

export interface UserInterface {

  id?: string;
  name: string;
  email: string;
  password: string;
  status: string

 constructor(auth) {
   this.id = auth.uid
 }
}

我的服务:

createUser(user: UserInterface) {
  return this.angularFireAuth.auth.createUserWithEmailAndPassword(user.email, user.password)
}

如何在 ID 中添加属性名称和 uid?

【问题讨论】:

  • 不,您不能使用此方法添加更多数据!火力基地负责 UID 和安全性
  • 你应该把额外的数据放在数据库中,而不是在身份验证系统中。当用户注册时,创建 auth 用户并获取新的 uid,然后在您想要的任何路径下将附加字段写入数据库,例如 /user_profiles/{uid}
  • 所以,我不想将数据放入身份验证系统,我想要将身份验证系统与数据库关联

标签: typescript firebase firebase-authentication angular5


【解决方案1】:

[已解决]对我来说,我就是这样做的

AuthService 我有

  createUser(user: UserInterface) {
       return this.angularFireAuth.auth.createUserWithEmailAndPassword(user.email, user.password)
                            .then(() => {
                              this.service.save(user);
                            })
                            .catch((e) => console.log(e));
  }

在我的用户服务中我有

save(user: any) {
return new Promise((resolve, reject) => {
  if(user.key) {
    this.db.list(this.PATH)
          .update(user.key, ({ name: user.name }))
          .then(() => resolve())
          .catch((e) => reject(e))
  } else {
    this.db.list(this.PATH)
            .push({ name: user.name })
            .then(() => resolve())
    }
  })
}

这样,我可以在 Auth 系统中使用电子邮件和密码创建一个用户,并在 UserService 中为该用户添加属性,这样我就完成了!

【讨论】:

    猜你喜欢
    • 2018-03-12
    • 2016-11-27
    • 2020-10-08
    • 2019-07-10
    • 2020-06-09
    • 2017-11-25
    • 2018-08-10
    • 1970-01-01
    • 2017-08-26
    相关资源
    最近更新 更多