将 getter 设置到 vuefire 的 firestore 部分

Posted

技术标签:

【中文标题】将 getter 设置到 vuefire 的 firestore 部分【英文标题】:Set a getter into a firestore section of vuefire 【发布时间】:2021-05-05 02:44:00 【问题描述】:

我正在寻找一种使用 vue 设置从 getter 到 firestore 部分的属性的方法。我正在使用 vuefire,但出现此错误:

vue.runtime.esm.js?2b0e:1888 TypeError: Cannot read property 'getToUid' of undefined

下面是我的代码:

    data: () => (
      name:'',
    ),
    firestore: () => (
        // eslint-disable-next-line no-undef
        usersList: db.collection(users),
        dmMessages: db.collection(direct_message).doc(this.getToUid).collection(message_collection_name)
      ),
    computed: 
        ...mapGetters(
          getToUid: "chats/GET_TO_UID",
        ),
    

getToUid 设置到这一行的最佳方法是什么:

 dmMessages: db.collection(direct_message).doc(this.getToUid).collection(message_collection_name)

【问题讨论】:

【参考方案1】:

您的firestore 选项不应是箭头函数,否则它无法通过this 访问组件实例。将其更改为:

firestore() 
  return 
    usersList: db.collection(users),
    dmMessages: db.collection(direct_message).doc(this.getToUid).collection(message_collection_name)
  
,

【讨论】:

以上是关于将 getter 设置到 vuefire 的 firestore 部分的主要内容,如果未能解决你的问题,请参考以下文章

如何从 VueFire 查询中获取最后一个文档

Vue.js 上带有图表的 Vuefire

使用 VueFire,我如何按日期降序排列我的列表(从最新到最旧)?

为啥我在尝试使用 vuefire 插件时会出错?

使用 VueFire 编辑 Firebase 数据

Vuefire(Firestore)非常非常慢的查询