2
这是我的代码读取数据火力地堡:无法读取火力地堡数据库
final String[] booknum = {"0"};
databaseReference.child("All BID").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
booknum[0] =Long.toString(snapshot.getChildrenCount());
Toast.makeText(getApplicationContext(), booknum[0],Toast.LENGTH_LONG).show();
}
@Override public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
}
});
Toast.makeText(getApplicationContext(), booknum[0],Toast.LENGTH_LONG).show();
当我执行此,先敬酒(内ValueEventListener)打印正确的答案(例如“8”)。但是,无论如何,外面的烤面包总是打印0。
请帮忙!
对不起,我试过了,但我无法修复它。你知道一种避免使用onDataChange()的方法吗?我只需要“All BIID”中的项目数量。 – theBrainyGeek
使用onDataChange()是正确的方法。并且您正在获取onDataChange()中“所有BID”内的项目数量。它打印8. –
我明白,但问题是,我得到的项目数量,以便我可以生成一个独特的代码,然后再放入新的数据。在我写入新数据之前,onDataChange()不会执行。这就是为什么在这个代码中首先打印外部Toast的'0',然后添加数据(使用唯一的代码0),然后onDataChange()打印出8个数字。 对不起,我是数据库管理新手,您的帮助非常高不胜感激! – theBrainyGeek