繁体   English   中英

无法从 Firebase 读取用户数据

[英]Can't read user data from Firebase

我正在使用 Firebase 用 Ja​​va 开发 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM