Javascript 更新firebase数据库中嵌套数组的值
我正在用Vue.js构建一个web应用程序,使用Firebase身份验证和实时数据库,我是新手。 在这个应用程序中,用户回答问题以获得一些分数 我的问题是:我想更新数据库中已存储和创建的现有阵列,以便该用户的Javascript 更新firebase数据库中嵌套数组的值,javascript,arrays,firebase,firebase-realtime-database,vue.js,Javascript,Arrays,Firebase,Firebase Realtime Database,Vue.js,我正在用Vue.js构建一个web应用程序,使用Firebase身份验证和实时数据库,我是新手。 在这个应用程序中,用户回答问题以获得一些分数 我的问题是:我想更新数据库中已存储和创建的现有阵列,以便该用户的进度/点数能够更新我应用程序中的所有组件 例如,假设我想增加屏幕截图中突出显示的值+1: 我在考虑像普通javascript中那样的userid.progress[6][0]+=1,但我无法更新数据库,值仍然是0。 我读过一些关于.set()或.update()的内容,但是在这种情况下,我
进度/点数
能够更新我应用程序中的所有组件
例如,假设我想增加屏幕截图中突出显示的值+1
:
我在考虑像普通javascript中那样的userid.progress[6][0]+=1
,但我无法更新数据库,值仍然是0
。
我读过一些关于.set()
或.update()
的内容,但是在这种情况下,我应该重写所有数组(这将是一个问题),但我可能完全错了
PS:获取用户id或当前用户不是问题,一切正常。
希望能找到人帮助我,提前谢谢大家 如果您试图更新现有分数,您可以在最精细的级别上编写。因此:
ref.child("pjoCy...0tl3/progress/0/6/0").set(1)
如果您想将一个新的分数推送到数组的末尾,您确实需要读取整个分数数组以向末尾添加一个新值。这是Firebase建议不要像您那样使用数组索引的众多原因之一。如果您改为使用所谓的推送ID,则添加新值变得非常简单,如下所示:
ref.child("pjoCy...0tl3/progress/0/6").push(1)
我建议你多读一些关于和经典博客文章。你不能这样做。首先是
get()
存储的值,然后使用.update()
进行增量您试图实现的目标有点不清楚,但我为下面几个可能的问题编写了一个答案。下一次,请包括,它需要大量的猜测工作的回答,并大大提高了你的机会得到很好的帮助很快。我会与@FrankvanPuffelen回答这个问题。但总的来说。它们很难使用,因为添加或删除元素需要读取和重新写入数组。此外,它们不可直接查询。它们实际上没有集成到JSON结构中,通常有更好的选择。如果您可以用一个特定的用例(比如0、1、2、3代表什么)和一些代码来更新您的问题,我们可能会提供一个更完整的答案。