问题标签 [vuexfire]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
firebase - 如何在 Vuexfire 中使用 Moment.js
我正在构建一个在 store.js 文件中使用 Vuexfire 的 Vue.js 应用程序。我的应用程序使用户能够将用户输入的带有时间戳的帖子推送到 Firestore。我正在配置我的 Vuexfire 操作处理程序,以提交按时间戳顺序排列的 firebase 有效负载的突变,如下所示:
此设置按时间戳正确排列帖子。但是,我希望使用 Moment.js 格式化时间戳,但不确定如何将 Moment 正确应用于动作处理程序。我尝试将时间戳包装在 Moment 中,如下所示:
...但这没有返回任何输出,只有控制台中的警告。我还尝试设置输入组件,以便推送到 Firebase 的时间戳已经使用 Moment 进行格式化,但帖子没有以正确的顺序返回。知道如何在 Vuexfire 操作处理程序中正确设置 Moment.js 以格式化时间戳吗?谢谢!
javascript - 使用 Vuex 操作 Firebase 集合中的文档 [Vuex/Vuexfire]
我有一个简单的问题,但我找不到答案。我正在使用 Vuexfire 从 Vuex 中的 Firebase 导入数据。
它工作得很好,但我想操作集合“ricettarioFirebase”的每个文档。使用 vue + firebase 很容易,使用 .get() 和 .then()
我找不到解决办法!我认为使用 GETTERS 是最好的方法,但我是 Vuex 和 Vuexfire 的新手,所以我不知道该怎么做。
特别是,我想转换它(经典的 firebase 命令):
在 Vuexfire 中。因此,将“ricettario[]”中的每个对象更改为“ricetta”,我想编辑“ricetta.diffClass”和“ricetta.data”
vue.js - vuex + vuexfire - 添加数据时存储对象不会更新
在以下代码中,在我更新字段集合后,它不会更新“this.fields”(通过 vuexfire 规则绑定到 store.js 中的集合)-仅当我刷新页面时。请帮忙。谢谢
javascript - 使用 vuex 并将新数据附加到状态时对 firestore 数据进行分页
我实现了以下内容来显示分页查询(这是 Tony O'Hagan 在这篇文章中提出的:如何从 VueFire 查询中获取最后一个文档):
当用户滚动到页面末尾时,我调用 bindMoreUsers 将 state.users 更新为下一组 8 个文档。我需要能够附加到 state.users 而不是覆盖原始的 8 个文档集。我怎样才能做到这一点?
firebase - 使用 firebase 在 Vuejs 应用程序上执行日常计算
我有一个带有 firebase auth、firestore 和 vuex 的 Vuejs 应用程序。我对其中一个组件进行了每日计算。即使用户有一段时间没有登录,保持计算值有效的最佳方法是什么?谢谢!
vue.js - 我应该如何避免在平面 vuex 结构中重复数据和 API 调用?
我目前正在构建一个 vue/vuex/firestore/vuexFire 项目,我遇到了以下问题。
假设我想显示一个消息列表,其中每条消息都与一个用户相关联。一个用户可以提交多条消息,这些消息都将在他们的名下。在 vuex 中,它的平面表示可能如下所示:
用户状态模块
消息状态模块
在服务器上(我使用的是 Firebase 的 Firestore),结构基本相同。因此,我获取所有消息,然后像这样关注每个 authorId:
我遇到的问题是,如果有一个用户创建了多条消息,它们将一遍又一遍地添加到 users 数组中。此外,fetchUser()
一遍又一遍地不必要地调用。到目前为止,我解决这个问题的尝试失败或不优雅:
users
我试图在调用之前检查用户是否已经存在于数组中fetchUser()
。但是,这不起作用,因为fetchUser
是异步操作。它可能正在获取过程中,因此检查用户是否已经在数组中通常测试为假。我试图检查用户是否已经存在于
addUser
突变中。虽然这确实可以防止重复,但它并不能防止不必要的用户获取。此外,addUser
突变必须在每次调用时检查用户不是重复的,这对于较大的数组可能会很昂贵。一种有效的方法是在状态中创建一个
fetchJobs
对象users
。当fetchUser()
被调用时,我将用户的 id 添加到对象中。然后,在获取其他用户之前,我会检查此对象以确保我没有获取重复项。与直接检查状态相反,这样做的原因是我在操作开始时提交了 fetchJob,因此它不是异步的。这样,其他组件和状态模块就可以访问它。但是,如果用户对象需要随时更新,这将不起作用,因为它仍将保留在 fetchJobs 对象中。
我还应该提到我正在使用一个名为 VuexFire 的小型帮助程序库,它管理 Firestore 的绑定collectionReference.onSnapshot()
。这引入了另一个限制,即在添加、更新或删除文档时我无法直接运行操作。这是因为 VuexFire 会自动处理所有这些更改,并且不支持挂钩这些事件。相反,我必须遍历所有现有消息并调用fetchUser()
. 我没有在上面的代码示例中包含它,因为它与snapshot.forEach()
. 如果需要,我也可以放弃这个库。
那么,解决这个问题的最佳方法是什么?
firebase - 用户首次登录时集合的实时绑定不起作用(Vue.js、Vuexfire、Firebase)
我正在开发一个通知系统,我遇到了 Vuexfire 来实时绑定通知集合和表格。到目前为止一切顺利,问题是:我可以同时向用户和组发送通知,那么如果选择了用户和组,就会有重复...如果他们删除重复通知,如何消除'同时发送给用户和组?但是,我当前的解决方案在 98% 的情况下都有效,在用户登录组通知后不会立即显示,除非我刷新或在系统中执行某些操作并返回。
我在每个存储用户或组 ID 的文档中都有一个 userIds 和 groupIds 数组。然后我做了两个绑定,如下图在我的vuex store主文件中。
我收到通知并将它们存储在 newNotificationsUser 和 newNotificationsGroup 中。
在我的组件中,我有这样的东西:
}
我连接两个数组,然后删除重复项并将结果显示在 uniqueNotifications 变量中。问题是这样的,在第一次登录时它不会加载组部分,只有在我导航到另一个页面并返回之后,或者收到将填充它的新通知。
我尝试更改 created 和 beforeMount 的挂载钩子,但无济于事。我认为问题出在 concat 方法上......有没有办法在不完全改变它的实现方式的情况下解决这个问题?
只是一些图片来说明我在说什么:登录并重定向到通知组件所在的主页后:
然后在刷新或其他任何东西之后它可以工作
提前致谢!