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