android– 在firebase中维护动态计算的值

android– 在firebase中维护动态计算的值,第1张

概述我有一个简单的firebase数据库:/rides是这样的简单对象列表{car:"Toyota"minutes:15}我需要显示所有游乐设施的分钟总和.显而易见的解决方案是加载所有游乐设施并计算总和.但是,如果我有几百次骑行,这很慢,最多几秒钟.所以我似乎必须在数据库中维护一个单独的字段/t

我有一个简单的firebase数据库:/ rIDes是这样的简单对象列表

{  car: "Toyota"  minutes: 15}

我需要显示所有游乐设施的分钟总和.显而易见的解决方案是加载所有游乐设施并计算总和.但是,如果我有几百次骑行,这很慢,最多几秒钟.

所以我似乎必须在数据库中维护一个单独的字段/ totalMinutes.但因此每次添加/删除/更改行程时我都必须手动更新/ totalMinutes.无论如何,这不是一件大事.

但是,如果我只计算一部分游乐设施的总分钟数呢?例如,只有“丰田”汽车或“福特”汽车?手动维护/ totalMinutesFord,/ totalMinutesToyota现在看起来并不那么容易.

那么在firebase中维护这些动态值的正确方法是什么?

解决方法:

Firebase无法根据数据库中的数据自动计算值.

所以你的两个选择是:

>每次更新数据时计算值
>检索所有数据并计算客户端上的值

您已经(明智地)决定检索所有数据并不是一个好主意.您的用户将不胜感激.

因此,每当您更新乘坐数据时,都会计算派生值.我不确定为什么为多个值执行此 *** 作比为单个值执行 *** 作更困难.它可能是更多的代码,但它几乎是相同的代码:

var rIDe = { car: "Toyota", minutes: 15 };ref = new Firebase('https://yours.firebaseio.com/');ref.child('rIDes').push(rIDe);ref.child('totalMinutes').transaction(function(current_value) {  return (current_value || 0) + rIDe.minutes;});ref.child('totalMinutes'+rIDe.car).transaction(function(current_value) {  return (current_value || 0) + rIDe.minutes;})
总结

以上是内存溢出为你收集整理的android – 在firebase中维护动态计算的值全部内容,希望文章能够帮你解决android – 在firebase中维护动态计算的值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1108242.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存