Javascript Firebase-Web-在没有可用电子邮件的情况下验证帐户

Javascript Firebase-Web-在没有可用电子邮件的情况下验证帐户,javascript,firebase,firebase-authentication,Javascript,Firebase,Firebase Authentication,在我的应用程序中,我为登录过程添加了一些其他提供商,如twitter或facebook。在一种情况下,twitter提供商无法获取电子邮件地址。我怀疑,因为twitter不知道用户的电子邮件可能只是用电话号码登录的。现在,如果没有电子邮件可供使用,我如何验证用户。sendEmailVerification 我可以使用Angular为我的应用程序的登录过程提供一些代码 服务 sendEmailVerificationmethod专门用于验证用户的电子邮件地址。如果用户的配置文件中没有电子邮件地址,

在我的应用程序中,我为登录过程添加了一些其他提供商,如twitter或facebook。在一种情况下,twitter提供商无法获取电子邮件地址。我怀疑,因为twitter不知道用户的电子邮件可能只是用电话号码登录的。现在,如果没有电子邮件可供使用,我如何验证用户。sendEmailVerification

我可以使用Angular为我的应用程序的登录过程提供一些代码

服务 sendEmailVerificationmethod专门用于验证用户的电子邮件地址。如果用户的配置文件中没有电子邮件地址,那么调用该方法是没有意义的


您可以检测到他们的个人资料没有电子邮件地址,然后向用户询问他们的电子邮件地址。然后,您可以拨打sendEmailVerification进行验证。

ha!是的,这是一种方法。
  public async loginWithDifferentProvider(provider: 'Google' | 'Facebook' | 'Twitter'): Promise<void | string | boolean> {
    let auth;
    switch (provider) {
      case 'Google':
        auth = new firebase.auth.GoogleAuthProvider();
        break;
      case 'Facebook':
        auth = new firebase.auth.FacebookAuthProvider();
        break;
      case 'Twitter':
        auth = new firebase.auth.TwitterAuthProvider();
        break;
    }

    try {
      await this.oAuthLogin(auth);
      return this.router.navigate(['/stories']);
    } catch (e) {
      this.notify.danger(e.message);
    }
  }

  private async oAuthLogin(provider) {
    const loginMetaData: UserCredential = await this.auth.firebaseAuthInstance.signInWithPopup(provider);
    const user: firebase.User = loginMetaData.user;
    let photoUrl: string;

    switch (loginMetaData.credential.providerId) {
      case 'twitter.com':
        photoUrl = loginMetaData.user.photoURL.replace('_normal', '');
        break;
      case 'facebook.com':
        const id = loginMetaData.additionalUserInfo.profile['id'];
        photoUrl = `https://graph.facebook.com/${id}/picture?type=large`;
        break;
    }

    return this.userService.createUserFromOtherProvider(user, photoUrl); // creates firestore doc. of the user
  }