2016-11-19 6 views
0

Model-Klasse:Firebase kann keine Daten abrufen

@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; 
    } 
} 

-Code für die Aktualisierung:

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(); 
    } 
} 

-Code für das Abrufen:

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(); 
     } 
    }); 
    } 

-Code für die Aktualisierung funktioniert, was ich bin Jetzt ist der Abruf Teil, ich kann nicht scheinen, die Daten aus meiner Datenbank zu bekommen. Hilfe und Führung ist nötig, danke.

+1

Haben Sie die Berechtigungen, z. B. die DataBase-Regel in Ihrer Firebase-Konsole überprüft? –

+0

Können Sie Ihre points.class-Datei sowie Ihre Datenbankstruktur posten? – Robert

+0

Danke für die Antwort, ich habe meine Punkte Klasse hinzugefügt – Arduino

Antwort

0

Normalerweise würde ich Informationen wie Sie als Objekte ziehen, aber weil Sie nur ein Stück Information ziehen, anstatt ein Punkteobjekt zu erstellen und all das würde ich es einfach manuell ziehen und setzen.

 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

Vielen Dank Robert !!, du bist ein Live-Saver ........ :) – Arduino

+0

Was ist, wenn ich zwei 2 Stück Informationen ziehen? – Arduino

+0

Wenn Sie nur zwei ziehen und sie in TextViews oder etwas platzieren, würde ich sie jeweils manuell ziehen, sonst, wenn ich die Informationen verwende, um Listen zu füllen oder etwas, würde ich die Informationen als Objekte ziehen. – Robert

Verwandte Themen