小编kam*_*il1的帖子

在Firebase中执行扇出数据的事务

我正在创建一个社交网络式的Feed,并且一直在关注Firebase博客上的指南,在整个数据库中散布我的"博客帖子".

这很有意义,适用于使用update()方法与这些帖子进行交互.但是,我不清楚如何在多个地方以原子方式执行交易.

例如,我想添加"喜欢"帖子的功能.如果我要在一个位置发布该帖子,我的代码将如下所示:

var postRef = firebaseDB.ref("posts/" + postID + "/likes");
postRef.transaction(function(likes) {
    return (likes || 0) + 1;
});
Run Code Online (Sandbox Code Playgroud)

出于显而易见的原因,以下解决方案不是原子的.

var postRef1 = firebaseDB.ref("posts/" + postID + "/likes");
postRef1.transaction(function(likes) {
    return (likes || 0) + 1;
});

var postRef2 = firebaseDB.ref("user/" + userID + "/posts/" + postID + "/likes");
postRef2.transaction(function(likes) {
    return (likes || 0) + 1;
});
Run Code Online (Sandbox Code Playgroud)

由于交易在ref上运行,我如何能够原子地"喜欢"多个地方的帖子?

nosql firebase firebase-realtime-database

2
推荐指数
1
解决办法
306
查看次数