javascript - 在 AsynData Nuxt 上运行 Firebase
问题描述
我的问题是对 Nuxt 上 asyncData 方法的 firebase 请求。当应用程序在客户端上时,请求有效,但第一次加载不起作用。那么,在服务器上,我安装了什么吗?
这是我的代码:
<script>
import { db } from '~/plugins/firebase.js'
export default {
asyncData (context) {
let listUsers = []
db.collection('users').get()
.then(doc => {
doc.forEach(user => {
listUsers.push({ id: user.id, ...user.data() })
});
})
return {
dataUsers: listUsers
}
}
}
</script>
解决方案
我看到@Andrew1325 指出的问题是你没有从asyncData
. 这意味着服务器在将 HTML 发送到客户端之前不会等待请求完成。
另一方面,你如何访问你dataUsers
的组件?
我建议您重新格式化代码以发送action
<script>
import { db } from '~/plugins/firebase.js'
export default {
asyncData ({store}) {
return store.dispatch('FETCH_USERS')
}
}
</script>
还有一个简单的动作
async function FETCH_USERS = ({commit}) => {
const doc = await db.collection('users').get()
commit('SET_USERS', doc)
}
推荐阅读
- menu - nwjs 菜单在 window.location.href 更改后停止工作
- angular - 禁用后如何渲染 ng2 图表
- css - 使用样式绑定设置 scss 变量
- php - Symfony 匹配到主机的路由不起作用
- java - 如何创建淡入淡出动画?
- iframe - fancybox - 在 iframe 中间保留不同大小的图片
- html - xpath:仅提取以开头的类
- java - 如何使方法打印出特定数字的滚动次数?
- javascript - javascript 中的 getElementsByClassName() 出错
- javascript - TypeError - 无法继续捕获异常