Angular Firebase:如何使用身份验证提供程序识别第一次注册

Angular Firebase:如何使用身份验证提供程序识别第一次注册,angular,firebase,firebase-authentication,angularfire2,Angular,Firebase,Firebase Authentication,Angularfire2,谢谢你的光临 我正在使用Facebook和Twitter实施Firebase身份验证,在用户首次注册后,我有特殊需要。我们正在创建一个refereal系统,我需要保留一个令牌,并知道它是否是第一个登录以向推荐他的用户添加点数的系统 我可以很容易地用电子邮件和密码来区分这两种方法,但我不能用社交提供商来区分 signInRegular(email, password) { const credential = firebase.auth.EmailAuthProvider.credenti

谢谢你的光临

我正在使用Facebook和Twitter实施Firebase身份验证,在用户首次注册后,我有特殊需要。我们正在创建一个refereal系统,我需要保留一个令牌,并知道它是否是第一个登录以向推荐他的用户添加点数的系统

我可以很容易地用电子邮件和密码来区分这两种方法,但我不能用社交提供商来区分

signInRegular(email, password) {
    const credential = firebase.auth.EmailAuthProvider.credential(email, password);
    return this.afAuth.auth.signInWithEmailAndPassword(email, password)
}


emailSignUp(email: string, password: string) {
    return this.afAuth.auth.createUserWithEmailAndPassword(email, password).then(user => {
      this.userDetails = user;
      console.log(this.userDetails);
    }).catch(error => error);
}
我遇到的问题是Firebase带来了一种独特的登录和注册方法

signInWithFacebook() {
  this.auth.signInWithFacebook().then((res) => {
    console.log("Authenticated with Facebook")
  }).catch((err) => console.log(err));
}
我计划通过数据库和存储,如果用户有一个创建的帐户或没有

但是,我想找到一种避免查询数据库的方法

如果您有任何建议或兴趣,我们将不胜感激


举手您必须在数据库/数据存储中保存转诊记录。将唯一密钥传递给referer,然后referer将其传递给新用户。将转介密钥输入添加到新用户注册流以收集转介密钥


作为在数据存储中记录新用户的一部分,请查询
referralKeys
集合以获取匹配的密钥(该密钥将具有原始referrer的uid作为属性)

您必须在数据库/数据存储中保留一条引用记录。将唯一密钥传递给referer,然后referer将其传递给新用户。将转介密钥输入添加到新用户注册流以收集转介密钥


作为在数据存储中记录新用户的一部分,请查询
referralKeys
集合以获得匹配的密钥(将原始referrer的uid作为属性)

感谢@bojeil,他找到了这篇文章

Firebase auth确实提供了一个指示器,指示用户是否是新用户

firebase.auth().signInWithPopup(provider)
  .then(function(result) {
    console.log(result.additionalUserInfo.isNewUser);
  })
  .catch(function(error) {
    // Handle error.
  });

这是指此功能的

多亏@bojeil,他找到了这篇文章

Firebase auth确实提供了一个指示器,指示用户是否是新用户

firebase.auth().signInWithPopup(provider)
  .then(function(result) {
    console.log(result.additionalUserInfo.isNewUser);
  })
  .catch(function(error) {
    // Handle error.
  });

这是指此功能的

查看此帖子:Firebase返回一个标志,无论用户是新用户还是现有用户。@bojeil非常感谢!!!这绝对是答案检查这篇文章:Firebase返回一个标志,无论用户是新的还是现有的。@bojeil非常感谢!!!这绝对是答案