1

我希望有人可以帮助我解决这个问题。

我目前正在开发一个项目,在该项目中我使用 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可以无缝地用于项目的其他功能,例如在最终创建文档时向用户添加和删除新数据,或者当我尝试删除用户时,它也可以正常工作.

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

4

2 回答 2

0

我相信您正在关注 The Net Ninja 的系列(我也是)。如果您完全按照他所做的(此处)进行操作,它将起作用。我个人将你和我的实现与他的不同,唯一不同的是分号。尝试在每行后添加分号。也许 Promise 的链接让编译器感到困惑?

当您注册时它仍然不起作用,然后反复注销。您需要在每次注销后刷新。

于 2020-07-05T02:14:56.620 回答
0

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

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

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

在 package.json 中。然后再次安装依赖项。

于 2020-07-13T01:16:02.683 回答