计算所有值 Firebase Java API
Count all values Firebase Java API
我正在尝试计算 Java 中我的 firebase 数据库中的所有值。但它不起作用,我已经查看了一些教程,但没有找到适合 Java 程序员的教程。
这是我的数据库:
Language
German
Message
-Jf6ShYy7niHrqg_x4Tc: "Tomorrow is very windy"
-Jf9v0xHAxINUUANrORU: "Today is very windy and rainy"
这是我的代码,请注意我尝试使用计数最大值的行:
Firebase f = new Firebase("https://myapp.firebaseio.com/Language/German/Message/");
f.addValueEventListener(new ValueEventListener() {
public void onDataChange(DataSnapshot snapshot) {
disp_msg = (TextView)findViewById(R.id.display_msg);
//disp_msg.setText(snapshot.getValue().toString());
Iterable<DataSnapshot> ds = snapshot.getChildren();
Iterator<DataSnapshot> ids = ds.iterator();
Map<String, Object> newPost = (Map<String, Object>) ids.next().getValue();
String msg = newPost.get("pubMsg").toString();
disp_msg.setText(msg.toString());
//The line below does not work getting the maximum values
int maxValueInMap=(Collections.max(newPost.values().toString()));
}
这是我在 Collections 的 max 函数处得到的错误:
The method max(Collection) in the type Collections is not applicable for the arguments (String)
有谁知道如何解决 Java 中的这个问题,在此先感谢。
它应该是:
int maxValueInMap=(Collections.max(newPost.values()));
你不小心做了 .toString
。 String 不是 Collection
,因此 .max
无法处理它。
不过,我可能会推荐,看看您是否可以使用 limit 子句进行排序,因为一次又一次地 运行 Collections.max
可能会变得昂贵。我在 firebase 文档中看不到 TOP
函数,但这会更好。
在我的 firebase 子目录中运行,找到 firebase 函数:
long maxNum = snapshot.getChildrenCount();
int nums = (int)maxNum;
disp_msg.setText(msg.toString() + Integer.toString(nums));
我正在尝试计算 Java 中我的 firebase 数据库中的所有值。但它不起作用,我已经查看了一些教程,但没有找到适合 Java 程序员的教程。
这是我的数据库:
Language
German
Message
-Jf6ShYy7niHrqg_x4Tc: "Tomorrow is very windy"
-Jf9v0xHAxINUUANrORU: "Today is very windy and rainy"
这是我的代码,请注意我尝试使用计数最大值的行:
Firebase f = new Firebase("https://myapp.firebaseio.com/Language/German/Message/");
f.addValueEventListener(new ValueEventListener() {
public void onDataChange(DataSnapshot snapshot) {
disp_msg = (TextView)findViewById(R.id.display_msg);
//disp_msg.setText(snapshot.getValue().toString());
Iterable<DataSnapshot> ds = snapshot.getChildren();
Iterator<DataSnapshot> ids = ds.iterator();
Map<String, Object> newPost = (Map<String, Object>) ids.next().getValue();
String msg = newPost.get("pubMsg").toString();
disp_msg.setText(msg.toString());
//The line below does not work getting the maximum values
int maxValueInMap=(Collections.max(newPost.values().toString()));
}
这是我在 Collections 的 max 函数处得到的错误:
The method max(Collection) in the type Collections is not applicable for the arguments (String)
有谁知道如何解决 Java 中的这个问题,在此先感谢。
它应该是:
int maxValueInMap=(Collections.max(newPost.values()));
你不小心做了 .toString
。 String 不是 Collection
,因此 .max
无法处理它。
不过,我可能会推荐,看看您是否可以使用 limit 子句进行排序,因为一次又一次地 运行 Collections.max
可能会变得昂贵。我在 firebase 文档中看不到 TOP
函数,但这会更好。
在我的 firebase 子目录中运行,找到 firebase 函数:
long maxNum = snapshot.getChildrenCount();
int nums = (int)maxNum;
disp_msg.setText(msg.toString() + Integer.toString(nums));