Firebase Auth检查Facebook上的新用户是否登录

Acu*_*ado 3 javascript facebook-login firebase-authentication

我正在使用Firebase身份验证创建一个Web应用程序来验证我的用户和一个MongoDB数据库,以存储特定于我的站点的一些相关用户信息.我正在尝试添加Facebook作为另一种身份验证方式.

登录Facebook正在运行,但我想要做的是拦截Firebase的用户生成/身份验证,以检查Firebase是否在首次登录Facebook时创建新用户.这样,如果在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;

 });
}
Run Code Online (Sandbox Code Playgroud)

我找不到任何可以让我检查Firebase文档中是否生成了新用户的内容.当第一次通过Facebook登录时,它似乎默默地处理新的Firebase auth用户生成.如果Firebase没有内置的方法来处理这个问题,我只会检查用户是否存在于我的数据库中,但我想确保没有更简单的替代方法.

boj*_*eil 9

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

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

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