Firebase使用相同数据优化多个请求

时间:2018-07-16 22:03:37

标签: javascript firebase firebase-realtime-database

我有一个带有firebase的简单React应用,我已登录用户

我有一个按钮,当我按下按钮时,我需要在firebase中获取当前用户分数(第一个请求),并使用随机数递增该值(第二个请求)

获取用户

firebase.database().ref('user' + uid).child().once()

更新用户:

firebase.database().ref('user' + uid).update({score : newValue})

每次用户按下按钮时,我都会发出这两个firebase请求以获取当前分数并将其递增

在大多数情况下,用户可以在按钮上单击150到600次,这可能会导致速度变慢

您是否有优化我的应用程序的建议,并且避免调用1200次(600次点击两次请求)firebase?

1 个答案:

答案 0 :(得分:0)

为什么不能在firebase上尝试“事务”查询。update函数将数据的当前状态作为参数并返回要写入的新期望状态。您要做的就是将密钥传递给如下所示的交易

   if (tonumber(numg)) and (tonumber(numg) >= 0) and (math.floor(tonumber(numg)) == tonumber(numg)) then
    --the function (working well)
    elseif tonumber(numg) > 30 then

      message.channel:send("Muitos CPFs, por favor, insira um número menor")

    else 

      message.channel:send("Insira parâmetros válidos")

    end

在这些情况下,交易真的很不错Follow up this link for more deets
因此,如果您使用事务处理,则可以将两个查询减少为一个。

我希望这会有所帮助。