Firebase Google身份验证-检查用户是否首次登录

时间:2018-07-10 21:11:05

标签: javascript firebase firebase-authentication

我在我的网站上使用了也支持Google登录的注册/登录,问题是我在Firestore中创建了一个新的数据文档,并在其中注册了uid,但我无法对Google登录执行此操作,否则会擦除现有条目,因为我只能通过Google登录,但是我需要一种方法来检查用户是否已经存在。

 googlelogin: function()
{
    var provider = new firebase.auth.GoogleAuthProvider();

    firebase.auth().signInWithPopup(provider).then(function(result) {
       // This gives you a Google Access Token. You can use it to access the Google API.
        var token = result.credential.accessToken;
      // The signed-in user info.
        var user = result.user;

         db.collection("user").doc(firebase.auth().currentUser.uid).set({
            name: firebase.auth().currentUser.email,
            favorites: []
  })

        $('#modal1').modal('close');

      // ...
        }).catch(function(error) {
      // Handle Errors here.
        var errorCode = error.code;
        var errorMessage = error.message;
      // The email of the user's account used.
        var email = error.email;
      // The firebase.auth.AuthCredential type that was used.
        var credential = error.credential;
      // ...
      });
},

1 个答案:

答案 0 :(得分:2)

您可以检查result.additionalUserInfo.isNewUser来查看用户是否是第一次登录。 signInWithPopup返回的结果是一个UserCredential对象:https://firebase.google.com/docs/reference/js/firebase.auth#.UserCredential