我是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) 非常感谢你!