在 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。然后重新安装依赖。
希望有人能帮我解决这个问题。
我目前正在开展一个项目,在该项目中我使用 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。然后重新安装依赖。