我希望有人可以帮助我解决这个问题。
我目前正在开发一个项目,在该项目中我使用 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可以无缝地用于项目的其他功能,例如在最终创建文档时向用户添加和删除新数据,或者当我尝试删除用户时,它也可以正常工作.
所以,如果有人能找到这个延迟的解释并帮助我克服这个问题,我会很高兴。