【发布时间】:2020-11-23 09:37:40
【问题描述】:
我正在创建一个电子商务网站。
现在我完成了使用电子邮件和密码创建新帐户。
我想在数据库中插入用户电子邮件、全名和时间戳。
如下图所示,我可以在 google chrome 开发控制台中看到 USER 数据。
但是当我在浏览器中检查 firebase 数据库时,我看不到用户 ID。相反,我在用户 ID 列中看到未定义。
现在我正在进行第 3 步流程。
- 将用户数据添加到数据库中
我不知道为什么会这样,所以我希望你能帮助我。
这是我的 store/index.js 文件。
import fireApp from '@/plugins/firebase'
export const state = () => ({
user: null,
error: null,
busy: false,
jobDone: false
})
export const mutations = {
setUser (state, payload) {
state.user = payload
},
setError (state, payload) {
state.error = payload
},
clearError (state, payload) {
state.error = null
},
setBusy (state, payload) {
state.busy = payload
},
setJobDone (state, payload) {
state.jobDone = payload
},
}
export const actions = {
signUpUser({commit}, payload) {
commit('setBusy', true)
commit('clearError')
//1.Signup new user.
//2.Update firebase user profile & set local user data.
//3.Add user data into database
//4.Attach user to consumer group
let newUser = null
fireApp.auth().createUserWithEmailAndPassword(payload.email, payload.password)
.then(user => {
newUser = user
var user = fireApp.auth().currentUser;
user.updateProfile({ displayName: payload.fullname })
const currentUser = {
id: user.uid,
email: payload.email,
name: payload.fullname,
role: 'consumer'
}
console.log('USER', currentUser)
commit('setUser', currentUser)
})
.then(() => {
const userData = {
email: payload.email,
fullname: payload.fullname,
createdAt: new Date().toISOString()
}
fireApp.database().ref(`users/${newUser.uid}`).set(userData)
})
.then(() => {
commit('setJobDone', true)
commit('setBusy', false)
})
.catch(error => {
commit('setBusy', false)
commit('setError', error)
})
}
}
export const getters = {
user (state) {
return state.user
},
error (state) {
return state.error
},
busy (state) {
return state.busy
},
jobDone (state) {
return state.jobDone
}
}
【问题讨论】:
标签: javascript firebase vue.js firebase-realtime-database firebase-authentication