更改每个用户在firebase中具有的分支中的特定节点

时间:2018-06-13 23:18:47

标签: swift firebase firebase-realtime-database

如何更新所有用户在自己的分支中拥有的特定节点?

我试图通过按一下按钮在一定天数后将用户点数集更新回15。我知道如何更新1个用户节点,但似乎无法弄清楚如何创建一个函数,当我按下按钮时,它会将所有具有该分支/ var的用户重置为15。

否则,我必须单独进行,这显然效率不高。

这是我的代码,只需点击一下按钮即可重置学生节点之一

Database.database().reference().root.child("students").child(userId).updateChildValues(["points": self.newPoints]) 

如何通过按一下按钮来编写重置所有具有“点数”键值的学生的方法?

任何帮助都将不胜感激。

由于

1 个答案:

答案 0 :(得分:1)

您无法使用通配符替换userId,因此会将其应用于每个节点。您可能需要获取整个students节点,并使用 for 循环逐个更新它们,这将是非常低效的。

您可能希望在数据库中使用更适合您情况的不同数据结构。多数民众赞成说,如果您仍想坚持使用当前结构,可以尝试让客户端在数据库中更新单个布尔标志,然后在 node.js中编写触发器函数以便直接在服务器端处理更新。查看:Firebase Cloud Functions