如何在我的java类中将firebase值存储为全局整数[重复]
Posted
技术标签:
【中文标题】如何在我的java类中将firebase值存储为全局整数[重复]【英文标题】:How do I store a firebase value as an global integer in my java class [duplicate] 【发布时间】:2020-06-11 11:33:12 【问题描述】:我已经被这个问题困扰了一段时间,我似乎无法解决它。我正在尝试通过在全局变量中使用“getValue”来存储数据库中的值。我想用这个变量来制作饼图(Anychart)。
这是我用来提取数据的代码。
我在代码顶部的 OnCreate 方法之外有一个变量,就像这样
int total_to;
问题是代码似乎没有将datasnapshot值存储在全局变量中,所以total_to值总是为零。任何帮助将不胜感激。请注意,我是 java 新手(放轻松;))
【问题讨论】:
正如彼得回答的那样:任何需要数据库数据的代码都需要内部onDataChange
或从那里调用。见***.com/questions/50434836/…
【参考方案1】:
onDataChange
是异步的,这意味着onDataChange
之后的代码将在数据完全检索之前执行。因此,onDataChange
之外的 total_to
将为零。您需要执行以下操作来解决此问题:
if (dataSnapshot.exists())
Integer total = dataSnapshot.getValue(Integer.class);
total_to = total;
Pie pie = AnyChart.pie();
List<DataEntry> data = new ArrayList<>();
data.add(new ValueDataEntry("y", total_to) );
data.add(new ValueDataEntry("x", 7) );
pie.data(data);
AnyChartView anyChartView = (AnyChartView)findViewById(R.id.piechart);
anyChartView.setChart(pie);
【讨论】:
谢谢!这很有帮助。 如何使用数据更改快照之外的饼图解决它?我的代码有许多数据库引用,图表由多个条目组成。通过每个 db ref,total_to 将增加。以上是关于如何在我的java类中将firebase值存储为全局整数[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Android:从运行时生成的文本字段中将数据保存到Firebase
如果我在我的 firebase 云功能中将请求的模式设置为“no-cors”,会发生啥?