Firebase认证如何检查新用户Facebook登录

7
我正在使用 Firebase auth 创建一个 Web 应用程序,用于验证我的用户,并使用 MongoDB 数据库存储一些与我的网站相关的用户信息。我试图添加 Facebook 作为另一种身份验证方式。
使用 Facebook 登录已经可以了,但是我想拦截 Firebase 的用户生成/验证过程,以检查是否在第一次 Facebook 登录时在 Firebase 中创建了新用户。这样,如果 Firebase 正在创建新用户,我也可以在我的 mongo 数据库中创建新用户(实际上处理注册)。我的 facebook 登录函数如下所示:
handleFacebookLogin() {
 firebase.auth().signInWithPopup(provider).then(function(result) {

  var token = result.credential.accessToken;
  var user = result.user;

  // check if new user here
  // handleNewFacebookUser()

  this.props.update(user);

 }).catch(function(error) {

  var errorCode = error.code;
  var errorMessage = error.message;
  var email = error.email;
  var credential = error.credential;

 });
}

我在Firebase文档中找不到任何内容来检查新用户是否已生成。当首次通过Facebook登录时,它似乎会默默地处理新的Firebase身份验证用户生成。如果Firebase没有内置的处理方式,我将只检查用户是否存在于我的数据库中,但我想确认是否有更简单的替代方案。

1个回答

16

您可以按照以下方法检测用户是新用户还是现有用户:

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

有关此内容的更多信息,请参阅文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接