Javascript 如何知道用户是否刚刚创建或已经存在于google signin和firebase web 9中?
我在web版本9中使用firebase身份验证时遇到了一个问题,当使用Google登录时,新创建的用户(注册)和以前创建的用户(登录)之间没有明显区别,两者使用相同的代码库:Javascript 如何知道用户是否刚刚创建或已经存在于google signin和firebase web 9中?,javascript,firebase,firebase-authentication,Javascript,Firebase,Firebase Authentication,我在web版本9中使用firebase身份验证时遇到了一个问题,当使用Google登录时,新创建的用户(注册)和以前创建的用户(登录)之间没有明显区别,两者使用相同的代码库: import { getAuth, GoogleAuthProvider } from "firebase/auth" const auth = getAuth() const googleProvider = new GoogleAuthProvider() signInWithPop
import { getAuth, GoogleAuthProvider } from "firebase/auth"
const auth = getAuth()
const googleProvider = new GoogleAuthProvider()
signInWithPopup(auth, googleProvider).then((result) => {
const user = result.user
})
我想区分新用户和现有用户,以确保在用户创建后向新用户询问更多信息。我找到了一些使用firestore并检查数据库中是否有用户的解决方案,但我认为应该有一个更简单直接的解决方案。
我在stackoverflow上找到的其他解决方案适用于版本9之前的版本。您可以使用
getAdditionalUserInfo
检查用户是否是新用户,如下所示:
import { getAuth, GoogleAuthProvider, getAdditionalUserInfo } from "firebase/auth"
const auth = getAuth()
const googleProvider = new GoogleAuthProvider()
signInWithPopup(auth, googleProvider).then((result) => {
const additionalUserInfo = getAdditionalUserInfo(result)
// you can know if the user is new or not
cons isNewUser = additionalUserInfo.isNewUser
const user = result.user
})