使用用户名NO Email登录angular和firebase

时间:2019-06-11 16:35:27

标签: angularjs firebase ionic-framework ionic4

你好,我正在做角度,火力和离子性的应用程序。我已经在应用程序中使用了登录启动器,并且希望我的应用程序使用用户名,电子邮件和密码进行注册。在稍后的应用程序中,我需要用户名才能放入Hello [username]。我可以选择使用属性.createUserWithEmailAndPassword(email,password)注册firebase此属性仅允许注册电子邮件和密码,如何为用户名添加参数?我会详细解释我是菜鸟。

我将代码分为页面和服务以及html部分。 -HTML页面

 <ion-item lines="none">
                    <ion-input class="placeholdertext inputField" type="text" placeholder="Username" [(ngModel)]="name" autofocus="true" padding-start></ion-input>
                </ion-item>
                <ion-item lines="none">
                    <ion-input class="placeholdertext inputField" type="text" placeholder="nombre@dominio.com" [(ngModel)]="email" autofocus="true" padding-start></ion-input>
                </ion-item>


                <ion-item lines="none">
                    <ion-input class="placeholdertext inputField" type="password" placeholder="Contraseña" [(ngModel)]="password" padding-start clearInput></ion-input>
                </ion-item>

-REGISTER PAGE TS

register() {
    this.spinner = true;
    this.disabled = true;

    this.auth
      .signupUser(this.email, this.password)
      .then(res => {
        console.log(res);
        this.auth.writeNewUser(this.email, res.user.uid)
          .then(response => {
            this.auth.getUser(res.user.uid).then(user => {
              this.spinner = false;
              this.disabled = false;
              this.route.navigate(['approved']);
              console.log(this.email, this.password );
            });
          })
      })

-FINALLY THE AUTH SERVICE

signupUser(email: string, password: string): Promise<any> {
    return this.afAuth.auth
      .createUserWithEmailAndPassword(email, password)//In this part it does not let me add another parameter
  }

   writeNewUser( email: string, uid: string): Promise<any> {
    console.log(name, uid, email)
    return this.db
      .collection('drivers')
      .doc(uid)
      .set({
        email: email,
        available: false,
        approved: false
      });
  }

  loginUser(  email: string, password: string): Promise<any> {
    return this.afAuth.auth.signInAndRetrieveDataWithEmailAndPassword( email, password);
  }


signupUser(email: string, password: string): Promise<any> {
    return this.afAuth.auth
      .createUserWithEmailAndPassword(email, password)
  }

正如我之前所说,我希望在注册和登录时都可以添加另一个密码来输入用户名,然后在用户登录时使用您的用户名启动应用程序并打招呼[username]。伴随此属性的地方。用电子邮件和密码创建用户。 https://firebase.google.com/docs/auth/web/manage-users?hl=en-419

感谢您的帮助。我也说西班牙语

1 个答案:

答案 0 :(得分:0)

Firebase身份验证不支持使用用户名来标识用户。用户必须提供电子邮件地址以验证其身份。如果您想稍后分配用户名,那很好,但是他们仍然无法使用该用户名登录。他们将始终必须使用其电子邮件地址和密码。