【发布时间】:2023-03-28 02:56:01
【问题描述】:
在我的 Android 应用中,我使用注册活动上传了用户图片。注册后,会加载 MainActivity 并且需要在 imageview 中显示用户图像。但是没有图像被显示并得到下面
错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.google.firebase.auth.FirebaseAuth.getUid()' on a null object reference
主活动:
public class MainActivity extends AppCompatActivity {
private FirebaseAuth firebaseAuth;
private DatabaseReference databaseReference;
private StorageReference mStorageRef;
SharedPreferences sharedpreferences;
private FirebaseAuth.AuthStateListener authStateListener;
private FirebaseDatabase firebaseDatabase;
private FirebaseStorage firebaseStorage;
String post_key = null;
public static final String MyPREFERENCES = "MyPrefs";
private TextView txt,url;
private ImageView profilePic;
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
private int[] tabIcons = {
R.drawable.homeico,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
profilePic = findViewById(R.id.userimg);
firebaseAuth = FirebaseAuth.getInstance();
firebaseDatabase = FirebaseDatabase.getInstance();
firebaseStorage = FirebaseStorage.getInstance();
databaseReference = FirebaseDatabase.getInstance().getReference();
DatabaseReference databaseReference = firebaseDatabase.getReference(firebaseAuth.getUid());
StorageReference storageReference = firebaseStorage.getReference();
storageReference.child(firebaseAuth.getUid()).child("Images").child("Profile Pic").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
Glide.with(MainActivity.this).load(uri).into(profilePic);
}
});
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
setupTabIcons();
}
private void setupTabIcons() {
tabLayout.getTabAt(0).setIcon(tabIcons[0]);
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new OneFragment(), "Home");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return null;
}
}
}
【问题讨论】:
-
您在哪一行代码中遇到了该错误?您是否还确定调用
.getUid()时用户已通过身份验证? -
不确定,相当初学者。
标签: android firebase firebase-authentication android-studio-3.0