Meine App geben die folgenden Fehler: com.google.firebase.database.DatabaseException: Fehler Werte vom Typ java.lang.Long in String konvertierenFirebase Datenbank getValue Ausgabe
Dieser Fehler in dem am auftritt Leitung: MGame = dataSnapshot.getValue (Game.class) Hier ist mein Code:
://create datarefence of only 1 game namely the current game
specificGameRef =mDatabase.child("games").child(-KhmBnF9vTLJSgNBcPqE);
specificGameRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
mGame =dataSnapshot.getValue(Game.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
// ...
}
});
Hier mein json Code aus der Feuerbasis Datenbank
Wenn jemand mir helfen könnte, meinen Fehler zu finden, danke.
EDIT: Spielklasse:
public class Game {
//firebase
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;
private DatabaseReference mDatabase;
FirebaseUser user;
User mUser;
private String creatorName;
private String key;
private int day;
private int month;
private int year;
private int clockHours;
private int clockMinutes;
private int durationMin;
private int durationMax;
private String creatorId;
public Game() //An empty constructor for datastorage of Firebase
{
}
public Game(String creatorId) {
this.creatorId = creatorId;
key = getKey();
day = getDay();
month = getMonth();
year = getYear();
clockHours = getClockHours();
clockMinutes = getClockMinutes();
durationMin = getDurationMin();
durationMax = getDurationMax();
}
EDIT: Benutzerklasse
public class User {
//firebase authentification system
private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener mAuthListener;
private DatabaseReference mDatabase;
String userId;
String mUsername;
String email;
int age;
int stars;
int badReputation;
String gender;
int birthYear;
int birthMonth;
int birthDay;
public User()
{
}
public User(String userId,String mUsername,String email) {
mDatabase = FirebaseDatabase.getInstance().getReference();
this.userId = userId;
this.mUsername = mUsername;
age = getAge();
stars = 0;
this.email=email;
badReputation = 0;
gender = "";
}
Hinzu kommt, dass, ich habe diese andere Klasse, wo ein dataSnapshot. getValue einer Benutzerklasse. Und es funktioniert perfekt, was ist damit los ?? Hier ist der Code:
public void retrieveUser()
{
//create datarefence of only 1 user namely the current user
DatabaseReference specificCreatorRef =mDatabase.child("users").child(user.getUid());
specificCreatorRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//Now retrieving the current user and putting it in object mUser
mUser = dataSnapshot.getValue(User.class);
Log.w(TAGESS, "Print STARS of current mUSer: " + mUser.getStars());
creatorGender =mUser.getGender();
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
// ...
}
});
}
Also der letzte Code funktioniert perfekt, also warum funktionierts und nicht die DataSnapshot.getValue (Game.class)? Danke!
Datentyp in Spielmodellklasse kann von dem Wert, den Sie von dataSnapshot bekam verschiedene de, überprüfen Sie bitte einmal oder geben Sie Ihre Modellklasse – Priya
Was meinen Sie durch den Datentyp Spielklasse? Ich werde es dem Beitrag hinzufügen. – myName
Und die Benutzerklasse? –