【发布时间】:2021-08-07 13:21:52
【问题描述】:
我正在使用这个VueJS starter template,我需要在身份验证后直接将其他数据存储到用户帐户。
helper.js
import UsersDB from '@/firebase/users-db'
/**
* Create new user from firebase auth user infos
*/
export const createNewUserFromFirebaseAuthUser = async firebaseAuthUser => {
const providerData = firebaseAuthUser.providerData[0]
const { displayName, photoURL, email } = providerData
const userDb = new UsersDB()
const user = {
displayName,
photoURL,
email
}
return userDb.create(user, firebaseAuthUser.uid)
}
我的目标是使用仅在用户首次登录后可用的社交登录数据填充名为 socialLogin 的第四个字段。
const user = {
displayName,
photoURL,
email,
socialLogin
}
methods: {
...mapMutations('authentication', ['setUser']),
async login() {
this.loginError = null
const provider = new firebase.auth.GoogleAuthProvider()
this.setUser(undefined)
try {
isDekstop()
? await firebase.auth().signInWithPopup(provider)
: await firebase.auth().signInWithRedirect(provider)
} catch (err) {
this.loginError = err
this.setUser(null)
}
}
如何将数据从 Login.vue 视图传递到 helper.js?
【问题讨论】:
-
您可以将“helper.js”导入您的“Login.vue”组件并从“Login.vue”调用助手中的一个函数,将 socialLogin 作为参数传递...或者,也许考虑使用 Vuex 处理状态
标签: javascript firebase vue.js