首页 > 解决方案 > 使用 Firebase 时无法计算儿童数量

问题描述

我正在尝试获取孩子的数量。


public int get_number_of_children_place() {
    myRef.addListenerForSingleValueEvent(new ValueEventListener(){
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if(dataSnapshot.exists())
                    lastRow=(int) dataSnapshot.getChildrenCount();
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

        myRef.child("0").child("name").setValue("3f");
        return lastRow;
{

lastRow 和 myRef 被定义为全局。问题是如果从 onCreate 方法调用此代码将不起作用...在单击事件调用时它可以正常工作。问题是如何让它在 oncreate 方法上工作......谢谢


public class addPlaces extends AppCompatActivity {
    int lastRow=0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_places);
        myRef = FirebaseDatabase.getInstance().getReference().child("place");
        int rowNo=get_number_of_children_place();// this says rowNo = 0
   }

   public void on_press(View view){
       int rowNo=get_number_of_children_place();// this says rowNo = 5(number of children)
   }

标签: androidfirebase-realtime-database

解决方案


推荐阅读