【问题标题】:Pass data from .vue to .js file将数据从 .vue 传递到 .js 文件
【发布时间】: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
  }

Login.vue

 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


【解决方案1】:

好吧,您正在导出一个函数,因此您需要导入它并在.vue 文件中进行调用。

import { createNewUserFromFirebaseAuthUser  } from 'path/to/helper.js'

// ...

async login() {
   // ...
   createNewUserFromFirebaseAuthUser(...);
   // ...
}

【讨论】:

  • 感谢您的快速回答,但我还不明白如何将数据传递给 helper.js 中的“socialLogin”。 ` const user = { displayName, photoURL, email, socialLogin }` 请多解释一下。
  • 如果需要,将其作为参数传递给函数。
猜你喜欢
  • 1970-01-01
  • 2020-09-25
  • 2018-02-23
  • 1970-01-01
  • 2016-09-24
  • 2017-02-27
  • 2017-02-24
  • 2013-01-13
  • 2021-09-02
相关资源
最近更新 更多