2016-07-29 4 views
2

Ich versuche, die Menge der Daten in meiner Datenbank zu minimieren.Firebase - Speichern Sie keine spezifische Variable in der Datenbank, wenn Sie setValue (Object) verwenden;

Ich habe eine Klasse namens User, die wie folgt aussieht:

class User { 

private Position pos; 
private String uid;} 

Gerade jetzt meine Datenbank wie folgt aussieht:

`uid{ 
    pos{ L1=value, 
     L2=value 
     } 
    uid=value 
}` 

Sehr minimalized in der Tat würde ich nicht einmal lieber haben die zusätzliche UID, weil der Schlüssel die UID ist, die sowieso die eindeutige Kennung ist.

Jetzt möchte ich eine zusätzliche Variable namens arbeiten in die Klasse hinzufügen.

`class User{ 
private Position pos; 
private String uid; 
private boolean working; 
}` 

Mit ref.setValue (Benutzer), wird die Datenbank jetzt die:

`uid{ 
    pos{ L1=value, 
     L2=value 
     } 
    uid=value, 
    working=value 
}` 

Ich brauche nicht die Arbeitsvariable in der Datenbank zu speichern, das ist nur unnötige Informationen zu senden. Wie sende ich das nicht, aber behalte es in meiner Benutzerklasse? Das gleiche gilt für die zusätzliche String-UID. Ich würde es vorziehen, das auch aus der Datenbank zu entfernen, aber behalte es in der Klasse.

Antwort

1

Überprüfen Sie die @Exclude und IgnoreExtraProperties.

https://firebase.google.com/docs/reference/android/com/google/firebase/database/Exclude

class User{ 
private Position pos; 
private String uid; 
@Exclude 
private boolean working; 
} 
+0

Das war schnell. Vielen Dank. Ich wusste nicht, wonach ich suchen sollte, aber Ihr Beitrag hat mich in die richtige Richtung geschickt. Die Lösung für mich war die Verwendung von @JsonIgnore – Jetompki

+0

'@ JsonIgnore' ist in der Firebase 2.x SDK,' @ Exclude' ist das Äquivalent, wenn Sie Firebase 3.x SDK verwenden. –

Verwandte Themen