我在对 web 版本 9 使用 firebase 身份验证时遇到问题,当使用 Google 登录时,新创建的用户(注册)和之前创建的用户(登录)之间没有明显区别,两者都是他们使用相同的代码库:
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
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句