用于从 Vue 组件中的 Firebase 检索数据的生命周期挂钩

Posted

技术标签:

【中文标题】用于从 Vue 组件中的 Firebase 检索数据的生命周期挂钩【英文标题】:Lifecycle hook for retrieving data from Firebase in a Vue component 【发布时间】:2021-10-19 15:57:21 【问题描述】:

我有一个 Vue 2 组件,它使用 Vuefire 以声明方式与 Firebase 实时数据库绑定:

import  db  from '../firebase/db'
export default 
    data: () => (
        cats: []
    ),
    firebase: 
        cats: db.ref('cats')
    ,
    mounted: function() 
        // loop over this.cats
    

我希望组件在安装时循环遍历cats 属性。问题是当它被挂载时,它还没有从数据库中检索到猫。有没有一种简单的方法可以抓住这一点?还是我必须告别这种简洁的数据获取方式并在mounted 中完成这一切?

【问题讨论】:

【参考方案1】:

正如 declarative binding 的 vuefire 文档中所述:

firebase 选项中提供的任何数据库引用都将绑定在 创建(在Vue的created钩子之后)到指定的key上 组件

因此,您实际上不需要在 mounted 挂钩中添加任何内容。如果你想在 cats 数组被填充时触发一个动作,你可以使用标准的 Vue.js watch


如果您不想订阅 RTDB cats ref 中的实时更改(即在 vuefire 词汇表中进行 绑定)并且只想读取一次 cats 节点数据安装组件后,您应该使用标准 Firebase JS SDK,如 vuefire 文档中的 here 所述。

【讨论】:

以上是关于用于从 Vue 组件中的 Firebase 检索数据的生命周期挂钩的主要内容,如果未能解决你的问题,请参考以下文章

useContext 未在子组件中显示更新的状态(当从全局文件中的 useEffect 挂钩中的 firebase 检索数据时)

为啥在 Vue js 中尝试从 firebase 检索令牌时出现错误?

无法在firebase + vue中检索用户详细信息和图像

Vue.js:从 Firebase 存储中检索数据后如何异步加载模板?

如何根据 android 中的用户位置从 Firebase 数据库中检索数据?

如何在 vue js 中显示从 firebase 检索到的标题标签 <h1> </h1> 的数据?