2017-02-26 133 views
0

我花了幾個小時試圖做到這一點,但我一直在圈圈中運行,無法從Firebase正確提取數據。從Firebase中檢索簡單數據Android

我的Android應用:

  • 認證用戶與他們的電子郵件地址
  • 跟蹤多少分的每個用戶有(我送他們點作爲字符串現在)
  • 我其檢索他們的積分

我的問題是問題米...

我怎麼能PU當活動被加載時,他們已經存儲的點到textView中?

這裏是我有什麼 enter image description here

這是我保存功能:

private void savePoints(){ 
    String points = editTextPoints.getText().toString().trim(); 

    UserPoints userPoints = new UserPoints(points); 

    FirebaseUser user = firebaseAuth.getCurrentUser(); 
    final DatabaseReference userRef = databaseReference.child(user.getUid()); 

    userRef.setValue(userPoints); 
    Toast.makeText(this, "Points Saved...", Toast.LENGTH_SHORT).show(); 
} 

這是我UserPoints類:

public class UserPoints { 
public String points; 

public UserPoints(String points) { 
    this.points = points; 
} 

public UserPoints(){ } 

} 

現在...如何任何建議建立一個loadPoints讓用戶可以看到他有多少點?

感謝

回答

1

據我所知,你在你的監聽器連接到錯誤的位置:

private void savePoints(){ 
    //editTextPoints is my editText field 
    String points = editTextPoints.getText().toString().trim(); 

    UserPoints userPoints = new UserPoints(points); 

    FirebaseUser user = firebaseAuth.getCurrentUser(); 
    final DatabaseReference userRef = databaseReference.child(user.getUid()); 

    userRef.setValue(points); 

    userRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      String value = dataSnapshot.getValue(String.class); 
      retrievePoints.setText(value); 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      throw databaseError.toException(); // don't just ignore errors 
     } 
    }); 
} 

我期望你裝上監聽其他地方BTW。現在它只是會拿起你剛剛寫的相同的價值,所以你不妨直接將點設置爲沒有聽衆的文本視圖:

retrievePoints.setText(points); 
+0

你好,弗蘭克,我試圖搶同樣的價值爲學習目的。 你真了不起...我生病了,沒有想清楚,但你幾分鐘就解決了我的問題。感謝您的貢獻。 – user258813

+0

不客氣。 :-)如果我的回答很有用,請點擊左側的upvote按鈕。如果它回答了您的問題,請點擊複選標記以接受它。這樣別人就知道你已經(充分)幫助了。 –

+0

我上傳了這個問題,以獲得更具體的如何檢索已存儲的數據。 – user258813