我在运行我的应用程序时遇到了这个问题:
尝试在空对象引用上调用虚拟方法 java.lang.String com.google.firebase.auth.FirebaseUser.getDisplayName()
我想制作一个用户无需先登录即可浏览的应用程序。如何将name.setText("hi, " + currentUser.getDisplayName());
if 语句放在里面 我应该在 if 语句的编码中写什么?
这是我的MainActivity
java类:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name=findViewById(R.id.name);
// //display customer's account name
name.setText("hi, " + currentUser.getDisplayName());
//ini
firebaseAuth = FirebaseAuth.getInstance();
currentUser = firebaseAuth.getCurrentUser();
databaseReference = FirebaseDatabase.getInstance().getReference("Cust");
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_option,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
int id= item.getItemId();
if (id == R.id.logout){
logout();
return true;
}
else if (id==R.id.login){
login();
return true;
}
return super.onOptionsItemSelected(item);
}
private void login() {
Intent intent= new Intent(this,LoginActivity.class);
startActivity(intent);
}
private void logout() {
FirebaseAuth.getInstance().signOut();
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
}
}
慕尼黑的夜晚无繁华
相关分类