【发布时间】:2018-05-15 16:36:58
【问题描述】:
我正在使用 Firebase 身份验证和实时数据库使用 Vue.js 构建一个 Web 应用程序,这是我的新手。 在这个应用程序中,用户回答问题以获得一些分数。
我的问题是:我想更新已在数据库中存储和创建的现有数组,以便该用户的 progress/points 可以跟踪更新我的应用程序中的所有组件。
例如,假设我想增加屏幕截图中突出显示的值+1:
我正在考虑类似userid.progress[6][0] += 1 之类的东西,就像在普通的 javascript 中一样,但我无法更新数据库,值仍为 0。
我读过一些关于.set() 或.update() 的内容,但在这种情况下,我应该重写所有数组(这将是一个问题),但我可能完全错了。
PS:获取用户ID或当前用户不是问题,一切正常。 希望能找到帮助我的人,在此先感谢您!
【问题讨论】:
-
你不能那样做。首先
get()存储的值,使用.update()递增 -
有点不清楚您要完成什么,但我在下面为一些可能的问题写了一个答案。下次请包括minimum code that reproduces where you are stuck,它可以消除大部分的猜测工作,并大大提高您快速获得良好帮助的机会。
-
我会选择@FrankvanPuffelen 回答这个问题。但总的来说Arrays Are Evil。它们很难使用,因为添加或删除元素需要读取和重写数组。此外,它们不能直接查询。它们确实没有集成到 JSON 结构中,并且通常有更好的选择。如果您可以使用特定用例(例如 0、1、2、3 代表什么)以及一些代码来更新您的问题,我们或许可以提供更完整的答案。
标签: javascript arrays firebase firebase-realtime-database vue.js