我有这个
mDatabase.child(sharedPrefs.getString("Person_id","error")).child("pago").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
pago = Integer.valueOf(dataSnapshot.getValue().toString());
Log.e("pagoono",""+pago);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Log.e("pago",""+pago);
我的数据库引用了一个值,它是0或1,我需要在关闭ValueEventListener
后使用该值,所以,我在onDataChange
内获取值,但我可以没有访问该值。我正在尝试访问此Log.e("pago",""+pago)
答案 0 :(得分:0)
您不能简单地在onDataChange()
方法之外使用该值,因为此方法称为异步。这意味着在从数据库获取数据之前调用它。最简单的方法是仅在onDataChange()
内部使用该值,或者更复杂的方式是潜入异步世界并在外部使用该值。为此,请参阅我在这篇文章中的回答:How To Get Value Async In Outside Method onDataChange()。