Firebase - 检查使用 Google 帐户创建的用户是否正在注册或登录?

git*_*gee 6 javascript firebase vue.js firebase-authentication

我正在尝试创建一个网络应用程序,您可以在其中使用谷歌帐户登录并注册帐户。我已经设法做到这一点,以便他们可以使用 signInWithPopup(provider) 登录,但不确定如何实现注册。有什么建议么?或者知道我可以使用 firebase 中的任何功能吗?

Dha*_*raj 12

使用 Google 登录或任何其他提供商时login没有任何单独的方法。sign up如果具有该凭据的用户存在,则用户将登录,否则将创建一个新的用户帐户。然后,您可以使用additionalUserInfo.isNewUsersignInWithPopUp方法收到的结果中的属性来检查用户是否是新用户。

firebase.auth().signInWithPopup(provider).then(function (result) {
  const {additionalUserInfo: {isNewUser}} = result;

  console.log(isNewUser ? "This user just registered" : "Existing User")
})
Run Code Online (Sandbox Code Playgroud)

对于新的Modular SDK(V9.0.0+),同样可以写成:

import { signInWithPopup, getAdditionalUserInfo } from "firebase/auth"

const result = await signInWithPopup(auth, googleProvider);

// Pass the UserCredential   
const { isNewUser } = getAdditionalUserInfo(result)    
Run Code Online (Sandbox Code Playgroud)