从Firebase检索错误的数据:局部变量保持重启,而不是保持新值

时间:2019-02-24 22:51:13

标签: java android firebase

我是Firebase的新用户。 我的Firebase的“用户”表中的“用户”类中有bool IsAdmin。 我检索bool并使用以下代码将其保存: 首先,在“活动名称实现...”下,声明新的变量并确定一个默认值(不包括其默认值)。

 Boolean IsAdmin=false;

在OnCreate下:

@Override
                protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_menu);
                    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
                    setSupportActionBar(toolbar);
                    IsAdmin=false;

                    Fauth = FirebaseAuth.getInstance();
                    Fauth.getUid();

                    DatabaseReference UserRef= FirebaseDatabase.getInstance().getReference("Users").child(Fauth.getUid());
                    UserRef.addValueEventListener(new ValueEventListener() {                                 //todo: NotWorking
                        @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                 User user = dataSnapshot.getValue(User.class);
                 if (user.isAdmin!=null)
                 IsAdmin = user.isAdmin;
                Log.i("ValueState", IsAdmin.toString());



                Log.i("ValueState", IsAdmin.toString());
            }

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

                Toast.makeText(MenuActivity.this,"Retrieving Data Error",Toast.LENGTH_LONG).show();
            }
        });
        //

在那之后,我感到很困惑(如果是IsAdmin),由于某种原因它没有获得新值(在“ OnDataChange”函数中设置它之后),它只是获得默认值(在这种情况下为false) 非常感谢你!

0 个答案:

没有答案
相关问题