[英]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.