firebase - 使用 vuejs,如何将 firebase (vuefire) 对象获取到组件数据中

标签 firebase firebase-realtime-database vue.js vuefire element-ui

使用 firebase 4.10.1 和 vuefire 1.4.5。

我已经确认我已经初始化了 firebase,导出了一个 db 常量,并且正确地导入了 vuefire。

我正在尝试将我的 firebase 对象 (JSON) 加载到我的 dataTable 组件数据中。

我正在尝试:

export default {
    firebase: function () {
       return {
           fbObj: db.ref('collection')
       }
    },
    data () {
        return {
            dataTable: fbObj
        }
    }
 }

它连接正确,因为如果我在我的模板中使用 {{ fbObj }},我会得到完整显示的 JSON 对象。但是,如果我尝试将它加载到数据表上,我会得到 "fbObj is not defined" 作为控制台错误。

如何将我的 firebase 对象加载到数据表中?

最佳答案

代码:

firebase: function () {
   return {
       fbObj: db.ref('collection')
   }
},

创建一个可用于您的 Vue 实例的 this.fbObj。所以不是 dataTable: fbObj 正确的应该是:

data () {
    return {
        dataTable: this.fbObj   // but even this won't work
    }
}

但这行不通。你不能这样做,因为 data() 初始化代码将在 fbObj 初始化之前执行(从 firebase 更新它需要一些时间)。

因此,如果您希望 dataTable 引用该集合,要么:

  • 重命名 firebase 对象为dataTable:

    firebase: function () {
       return {
           dataTable: db.ref('collection')
       }
    },
    
  • 或者创建一个计算属性:

    firebase: function () {
       return {
           fbObj: db.ref('collection')
       }
    },
    computed: {
        dataTable() {
            return this.fbObj;
        }
    }
    

然后你可以在 Vue 实例 JavaScript 中使用 this.dataTable 或者在模板中使用 dataTable

关于firebase - 使用 vuejs,如何将 firebase (vuefire) 对象获取到组件数据中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49289999/

相关文章:

ios - 如何将用户添加到 Firebase 数据库

android - 查看 Firebase 上的 childEventListener 是否已完成所有数据的加载

javascript - 在 Vue 中使用带有动态属性的媒体查询

javascript - 在 Vue.js 中操作数据值

vue.js - 超出最大调用堆栈大小 - Vue Router

android - 弹出的 React Native 应用程序无法到达 Firestore 后端

javascript - DocumentReference 返回敏感数据 - Firestore

ios - 获取 iOS 的活跃用户数

android - 我们可以在通知中发送 Firebase ServerValue 时间戳吗?

firebase - 如何在firebase中自动按时间戳排序文档?