使用事务更新两个不同节点的值

时间:2017-04-04 14:03:32

标签: firebase firebase-realtime-database

我在数据库中有两个不同的节点。

  • all posts

  • users

根据用户添加帖子时的扇出模式,它会在all postsusers/uid/posts更新。

每个帖子都包含一个显示喜欢数量的按钮。

当用户点击它时,类似情况应增加+1。

根据docs,我们使用transaction进行此类处理。

但使用transaction的问题是,据我所知,它仅更新一个节点

但我的问题是如何在上述两个节点中更新此交易

我应该使用update方法

使用在两个节点都更新的事务的方法是什么

1 个答案:

答案 0 :(得分:2)

您可以使用Cloud Functions for Firebase将所有用于更新数据库的逻辑推送到服务器端。使用可以使用database trigger来响应正在写入数据库的数据,然后执行一些JavaScript以确保扇出正确完成。它的优势在于可以确保所有更改都不依赖于客户端。

交易不能同时修改两个不同位置的数据,但您仍可能希望在客户端和云功能中使用它们,以确保并发写入不会出现问题。

相关问题