我可以构建使用 google 身份验证提供商登录的用户的文档集合吗?

Can I structure document collection of users that sign in using google auth provider?


所以我正在尝试使用 React 和 Firebase 做一个应用程序,现在一切都很好。
在我的应用程序中,有几个选项可以授权用户。 Google、电子邮件和密码以及 Twitter。

当用户使用他的电子邮件创建帐户时,我可以轻松地为该用户构建数据在我的 firestore 中的样子,我就是这样做的:
firebase.createUser(
        { email, password },
        { 
            firstName, 
            lastName,
            emailAddress: email,
            birthDate: null,
            activeStatus: false,
            dateJoined: new Date(),
            avatarUrl: null,
            friends: [],
            posts: [
                {
                    content: "I have just joined!",
                    date: new Date(),
                    likes: [],
                    comments: [],
                    shares: []
                }
            ]
        }
    ).then(() => {
        history.push("/login")
    })

我的 firestore 中的输出是这样的: Firestore screen - email

现在我想以相同的方式构建使用 Google 身份验证登录的用户数据。
这就是我使用 Google 登录的样子:

const loginWithGoogle = () => {
    firebase.login({ provider: 'google', type: 'popup' })
    .then(() => {
        localStorage.setItem('authUser', auth)
        history.push("/home")
    })
    .catch(error => {
        console.log(error.message)
    })
}

默认情况下,firestore 中的输出看起来是这样的:Firestore screen - google


所以我的问题是:
我什至如何尝试使两种身份验证类型的集合看起来相同?
我应该以某种方式发现用户是第一次使用 google 提供商登录,然后尝试构建该集合,还是有更好的方法来做到这一点?

感谢所有回复。

*******************************
对于正在为此苦苦挣扎的人:
感谢@Ajordat 的回复,我做到了,这就是它的外观和对我来说完美的工作方式:

const loginWithGoogle = () => {
    firebase.login({ provider: 'google', type: 'popup' })
    .then((user) => {
        const fullName = user.profile.displayName.split(" ")
        
        const firstName = fullName[0]
        const lastName = fullName[1]

        if (user.additionalUserInfo.isNewUser) {
            firestore.collection("users").doc(user.user.uid).set({
                ...user.profile,
                firstName,
                lastName,
                birthDate: null,
                activeStatus: false,
                dateJoined: new Date(),
                friends: [],
                posts: [
                    {
                        author: firstName + " " + lastName,
                        content: "I have just joined!",
                        date: new Date(),
                        likes: [],
                        comments: [],
                        shares: []
                    }
                ]
            })
        } else {
            console.log("user exists")
        }

        localStorage.setItem('authUser', auth)
        history.push("/home")
    })
    .catch(error => {
        console.log(error.message)
    })
}

您应该使用方法 AdditionalUserInfo.isNewUser() 来检查用户是否是第一次登录。它总是 false 除了那一次,您需要使用它来根据需要在 Firestore 上创建用户。