想在事件监听器下面使用onDataChange变量数据

时间:2017-11-24 20:16:05

标签: android database firebase

我有这个

 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)

中的值

1 个答案:

答案 0 :(得分:0)

您不能简单地在onDataChange()方法之外使用该值,因为此方法称为异步。这意味着在从数据库获取数据之前调用它。最简单的方法是仅在onDataChange()内部使用该值,或者更复杂的方式是潜入异步世界并在外部使用该值。为此,请参阅我在这篇文章中的回答:How To Get Value Async In Outside Method onDataChange()