[英]Can't read user data from Firebase
我正在使用 Firebase 用 Java 开发 Android 应用程序。 该应用程序有 2 个需要用户数据的任务。 因此,当我单击第一个按钮时,它起作用了,但是当我重新启动应用程序并单击第二个按钮(相同的代码)时,它不起作用。 应用程序的图像
第一个按钮的代码:
if(mAuth.getCurrentUser() == null) {
accessoFragment.show(getSupportFragmentManager(), accessoFragment.getTag());
}
if (mAuth.getCurrentUser() != null) {
prelevaDati();
getSupportFragmentManager().beginTransaction().
add(R.id.fragmentContainerView, ProfiloFragment.class, null).commit();
toolbar.setSubtitle("Profilo");
}
第二个按钮的代码:
case R.id.buttonScheda:
if(mAuth.getCurrentUser() == null) {
accessoFragment.show(getSupportFragmentManager(), accessoFragment.getTag());
}
if (mAuth.getCurrentUser() != null) {
prelevaDati();
toolbar.setSubtitle("SCHEDA");
child = "Scheda";
} else return;
break;
读取数据功能:
public void prelevaDati() {
mDatabase.child("Utenti").child(mAuth.getCurrentUser().getUid()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
utente = snapshot.getValue(Utente.class);
}
@Override
public void onCancelled(@NonNull DatabaseError error) { }
});
}
请帮帮我
感谢@FrankvanPuffelen 更新了问题:按下第二个按钮后对象用户为空,因为跳过了 onDataChange 和 onCancelled 函数。 因此,当我尝试使用用户方法时,程序停止运行并在控制台中显示 NullPointException:
引起:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“java.util.HashMap com.example.app.Utente.getScheda()”
所以我解决了这个问题。
问题是第二个按钮在一个片段中,所以我在片段中移动了开关,现在它可以工作了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.