用于从 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 检索令牌时出现错误?
Vue.js:从 Firebase 存储中检索数据后如何异步加载模板?