我正在使用Firebase身份验证和实时数据库与Vue.js构建一个Web应用程序,我是新手。 在这个应用程序中,用户回答问题以获得一些要点。
我的问题是:我想更新已在数据库中存储和创建的现有数组,以便该用户的progress/points
将跟踪以更新我的所有组件应用
例如,假设我想在屏幕截图中增加+1
突出显示的值:
我正在考虑像普通javascript中的userid.progress[6][0] += 1
之类的东西,但我无法更新数据库,价值仍在0
。
我已经阅读了关于.set()
或.update()
的内容,但在这种情况下我应该重写所有数组(这将是一个问题),但我可能完全错了。
PS:获取用户ID或当前用户不是问题,一切正常。 希望有人帮我,非常感谢你!
答案 0 :(得分:1)
如果您尝试更新现有分数,则可以在最精细的级别上进行编写。所以:
ref.child("pjoCy...0tl3/progress/0/6/0").set(1)
如果要将新分数推送到数组的末尾,您确实需要读取整个分数数组以在末尾添加新值。这是Firebase建议不要像您一样使用数组索引的众多原因之一。如果您使用我们所谓的push-ID,添加新值就变得如此简单:
ref.child("pjoCy...0tl3/progress/0/6").push(1)
我建议您详细了解structuring lists in the Firebase documentation以及handling arrays in Firebase上的经典博客文章。