我有一个带有firebase的简单React应用,我已登录用户
我有一个按钮,当我按下按钮时,我需要在firebase中获取当前用户分数(第一个请求),并使用随机数递增该值(第二个请求)
获取用户
firebase.database().ref('user' + uid).child().once()
更新用户:
firebase.database().ref('user' + uid).update({score : newValue})
每次用户按下按钮时,我都会发出这两个firebase请求以获取当前分数并将其递增
在大多数情况下,用户可以在按钮上单击150到600次,这可能会导致速度变慢
您是否有优化我的应用程序的建议,并且避免调用1200次(600次点击两次请求)firebase?
答案 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
因此,如果您使用事务处理,则可以将两个查询减少为一个。
我希望这会有所帮助。