簡體   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