使用 Angular 5 firebase 创建具有电子邮件和密码的用户

Posted

技术标签:

【中文标题】使用 Angular 5 firebase 创建具有电子邮件和密码的用户【英文标题】:Create user with email and password using 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 所以,我不想将数据放入身份验证系统,我想要将身份验证系统与数据库关联 【参考方案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 中为该用户添加属性,这样我就完成了!

【讨论】:

以上是关于使用 Angular 5 firebase 创建具有电子邮件和密码的用户的主要内容,如果未能解决你的问题,请参考以下文章

利用浏览器缓存 - Firebase/Angular 5

使用 Angular 和 Firebase 登录后获取用户配置文件

在 Firebase 上托管 Angular 项目

Angular 5中的时间戳

如何在应用中搜索用户? (最具成本效益的方式)在 Firebase

Angular 5,订阅firebase,第一个元素是undefined