私はユーザーが管理者であるかどうかに基づいていくつかのボタンを隠そうとしています。これをデータベースに追加して、trueまたはfalseを表示します。ユーザー管理者がボタンを非表示にする必要があります偽のですが、これはfirebaseからの参照に基づくボタンを隠す
を何が起こっているかではない場合OnCreate関数の起動時にこれはコードiは//
通常通りのボタンが表示されているように、私は、if文を作成しました上にあり、管理者が目に見えるトンを使用しよう
invicible
最初とあれば、ユーザーとしてあなたの
xml
ファイル使用ボタンで
databaseUsers.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot venueSnapshot: dataSnapshot.getChildren()){
User user = venueSnapshot.getValue(User.class);
if(user.getAdminUser() == true)
{
buttonAddProducts.setVisibility(View.VISIBLE);
buttonAddBeverages.setVisibility(View.VISIBLE);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
//This is the entire oncreate
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
buttonAddBeverages = (Button) findViewById(R.id.buttonAddBeverages);
buttonAddProducts = (Button) findViewById(R.id.buttonAddProducts);
databaseUsers = FirebaseDatabase.getInstance().getReference("users");
//initializing firebase authentication object
firebaseAuth = FirebaseAuth.getInstance();
buttonAddProducts.setVisibility(View.GONE);
buttonAddBeverages.setVisibility(View.GONE);
//if the user is not logged in
//that means current user will return null
if(firebaseAuth.getCurrentUser() == null){
//closing this activity
finish();
//starting login activity
startActivity(new Intent(this, LoginActivity.class));
}
//getting current user
FirebaseUser user = firebaseAuth.getCurrentUser();
//initializing views
textViewUserEmail = (TextView) findViewById(R.id.textViewUserEmail);
buttonLogout = (Button) findViewById(R.id.buttonLogout);
//displaying logged in user name
textViewUserEmail.setText("Welcome "+user.getEmail());
databaseUsers.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot venueSnapshot: dataSnapshot.getChildren()){
User user = venueSnapshot.getValue(User.class);
if(user.getAdminUser() == true)
{
buttonAddProducts.setVisibility(View.VISIBLE);
buttonAddBeverages.setVisibility(View.VISIBLE);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
buttonLogout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//logging out the user
firebaseAuth.signOut();
//closing activity
finish();
//starting login activity
startActivity(new Intent(ProfileActivity.this, LoginActivity.class));
}
});
}
私はそれを試しましたが、私は間違った人が私がそれをデバッグするときにログインして表示されています。線量は現在のユーザーの価値を得ていないようです。 – Seamy20
私のコードを更新し、oncreateメソッド全体を追加しました – Seamy20