我正在调用数据库中的值以在类似 Android MP 的图表中使用,它最初可以工作,但由于某种原因不再工作,可能是因为折线图需要使用浮点值,所以将数据库中的数据更改为浮点值。
这是我调用数据的代码:
DatabaseReference databaseref = FirebaseDatabase.getInstance().getReference().child("Carbonfootprint").child(userid).child(String.valueOf(total));
databaseref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
final LineChartresult linechats = dataSnapshot.getValue(LineChartresult.class);
score = linechats.getCarbonfootprint();
dataVals.add(new Entry(total, score));
total++;
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
经数据库检查这里是Json格式
{
"Carbonfootprint" : {
"yV3msXDJxDXFo5gchxgbk7OjLHi2" : [ null, {
"carbonfootprint" : 13.300000190734863
}, {
"carbonfootprint" : 12.699999809265137
}, {
"carbonfootprint" : 12.100000381469727
}, {
"carbonfootprint" : 9.100000381469727
} ]
},
不确定为什么它说 null ?在我的数据库中,它看起来像这样:附加屏幕截图.. screenshot
最佳答案
如果total
是 float ,那么String.valueOf(total)
肯定会包含一个“.”。错误消息告诉您“。”不是在路径中使用的有效字符。
从数据的角度来看,您似乎也没有正确处理查询。您似乎想要查询名为“Carbonfootprint/yV3msXDJxDXFo5gchxgbk7OjLHi2”的整个节点,并在数组中查找您需要的数据。
关于java - Firebase 数据库路径 : 1. 0 无效。Firebase 数据库路径不得包含 '.' 、 '#' 、 '$' 、 '[' 或 ']',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60727765/