2016-11-19 186 views
0

模型類:火力地堡無法檢索數據

@IgnoreExtraProperties 
public class Points { 

public String score; 

public Points(){ 

} 

public Points(String score) { 
    this.score = score; 
} 

public String getScore() { 
    return score; 
} 

public void setScore(String score) { 
    this.score = score; 
    } 
} 

代碼更新:

private void updateUser(String name) { 
    FirebaseUser user = firebaseAuth.getCurrentUser(); 
    if (!name.equals("")) { 
     dbRefer.child("User").child(user.getUid()).child("score").setValue(name); 
     Toast.makeText(this, "update Done", Toast.LENGTH_SHORT).show(); 
    } 
} 

代碼檢索:

private void addUserChangeListener() { 
    final FirebaseUser getData = firebaseAuth.getCurrentUser(); 
    // User data change listener 
    dbRefer.child("User").child(getData.getUid()).child("score").addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      Points user = dataSnapshot.getValue(Points.class); 

      Toast.makeText(GameActivity.this, "Retrieved Data is: " + getData, Toast.LENGTH_SHORT).show(); 

      // Check for null 
      if (user == null) { 
       Log.e(TAG, "User data is null!"); 
       return; 
      } 

      Log.e(TAG, "User data is changed!" + user.getScore()); 

      // Display newly updated name and email 
      mTvShowData.setText(user.getScore()); 

      // clear edit text 
      mTxtEdtData.setText(""); 

      toggleButton(); 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      Toast.makeText(GameActivity.this, "Can't Get data", Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    } 

代碼更新工作,我是什麼現在面臨的是檢索部分,我似乎無法從我的數據庫中獲取數據。需要幫助和指導,謝謝。

+1

您是否檢查了Firebase控制檯中的權限,即數據庫規則? –

+0

你可以發佈你的points.class文件以及你的數據庫結構嗎? – Robert

+0

感謝您的回覆,我添加了我的積分類 – Arduino

回答

0

通常情況下,我會像現在一樣將信息作爲對象來提取,但由於您只能提取一條信息,而不是創建一個點對象,所有這些我都會手動將它拉出來。

 dbRefer.child("User").child(getData.getUid()).addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
String name = (String) dataSnapshot.child("score").getValue(); 
mTvShowData.setText(name); 
+0

非常感謝Robert !!,您是一位現場救星........ :) – Arduino

+0

如果我拉兩條2條信息會怎麼樣? – Arduino

+0

如果你只是拉兩個,並將它們放在TextViews或其他東西,我只是每個人手動拉他們,否則,如果我使用的信息來填充列表或東西我會把信息作爲對象。 – Robert