在 Firestore 中延迟以在用户集合中创建新文档

Delay in Firestore to create a new document in the users collection

希望有人能帮我解决这个问题。

我目前正在开展一个项目,在该项目中我使用 firebase 创建新用户。所以,当有人注册一个新用户时,firebase 创建一个新用户,然后它向 firestore 发送一个承诺,这样它就可以在一个名为 'users' 的集合中创建一个新文档,这样我就可以访问一些用户数据,如姓名、姓氏和首字母缩写。

我的问题是,当我注册一个新用户时,该帐户会立即在 firebase 中创建,但需要很长时间才能使用 firestore 中的用户数据创建一个新文档。当我说很长时间时,我指的是 10、20 分钟甚至更多。因此,使用未定义数据创建帐户,直到 firestore 决定创建新文档。

描述的过程如下代码所示:

export const signUp = newUser => {
    return (dispatch, getState, { getFirebase }) => {
        const firebase = getFirebase()
        const firestore = getFirebase().firestore()

        firebase.auth().createUserWithEmailAndPassword(
            newUser.email,
            newUser.password
        ).then(resp => {
            return firestore.collection('users').doc(resp.user.uid).set({
                firstName: newUser.firstName,
                lastName: newUser.lastName,
                initials: newUser.firstName[0] + newUser.lastName[0]
            }).then(() => {
                dispatch({ type: 'SIGN_UP_SUCCESS' })
            })
        }).catch(err => {
            dispatch({ type: 'SIGN_UP_FAIL', err })
        })
    }
}

我使用 redux-firestore 和 react-redux-firebase 作为依赖项将我的项目连接到 firebase。但这似乎不是问题,因为 firestore 可以无缝地用于项目的其他功能,例如在最终创建文档时向用户添加和删除新数据,或者当我尝试删除用户时,它也可以正常工作.

所以,如果有人能找到这种延迟的解释并帮助我解决这个问题,我会很高兴。

我相信您正在关注网络忍者系列(我也是)。如果您完全按照他所做的 (here) 进行操作,它就会奏效。我亲自将你的和我的实现与他的实现进行了比较,唯一不同的是分号。尝试在每行后添加分号。也许 promises 的链式混淆了编译器?

注册了还是不行,反复退出。每次注销后都需要刷新。

一段时间后,我意识到问题不在于代码或 firebase。问题出在项目本身的结构上。

为了解决这个问题,我需要摆脱

"@testing-library/jest-dom"
"@testing-library/react"
"@testing-library/user-event"

在package.json。然后重新安装依赖。