【发布时间】:2018-09-11 23:27:15
【问题描述】:
我从数据库中查询数据的性能非常低。我有超过 200 个用户节点。每个节点都有一个arraylist。我想检查特定用户节点下可用的子节点数。这是我编写的代码。
private DatabaseReference root,IdUser;
root = FirebaseDatabase.getInstance().getReference("ContactList");
IdUser = root.child(userId);
try {
IdUser.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int count = (int) dataSnapshot.getChildrenCount();
tv_count.setText(String.valueOf(count));
if (count>amount){
button.setText("Get Data");
button.setEnabled(true);
}else if (count<amount){
button.setText("Sync Data");
button.setEnabled(true);
}else {
button.setText("Sync Data");
button.setEnabled(true);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}catch (Exception e){
e.printStackTrace();
}
现在的问题是,计算孩子数需要 1 多分钟。请建议我可以对我的代码进行的任何改进以提高查询性能。提前致谢。
【问题讨论】:
标签: java android firebase android-studio firebase-realtime-database