Firebase @PropertyName funktioniert nicht

8

DIE GESCHICHTE

Ich verwende Firebase Realtime Database in meiner App. Ich habe so ein Modell.

%Vor%

Nun speichert dies das Feld als itemName in meiner Echtzeitdatenbank. Aber ich möchte diese Namenskonvention nicht verwenden. Ich möchte das Benennungsmuster, item_name .

WAS ICH TUN

Ich habe den @PropertyName ("item_name") über dem Feld wie folgt verwendet,

%Vor%

DAS PROBLEM

Firebase scheint die Anmerkung vollständig zu ignorieren. Es gibt keine Möglichkeit, die Eigenschaftsnamen für die Serialisierung und Deserialisierung zu ändern.

Jede Hilfe würde sehr geschätzt werden.

BEARBEITEN

Hier ist die komplette Modellklasse in Bezug,

%Vor%     
Aritra Roy 31.07.2016, 06:09
quelle

3 Antworten

15

Endlich gab es eine Chance, dieses Problem zu lösen. Danke an @hatboysam für den Vorschlag.

Das einzige Problem war, dass @PropertyName Annotation in Firebase nicht richtig dokumentiert wurde.

Das erste, was notwendig ist, ist, dass das Feld public sein muss, sonst wird die Annotation nicht funktionieren, was ziemlich offensichtlich ist /

Nun berücksichtigt die Annotation sowohl den Feldnamen als auch die zu serialisierenden Getter / Setter-Namen. Ich hatte auch das Problem, wo die Felder sowie die Getter / Setter serialisiert wurden, was zu doppelten Ket / Wert-Paaren führte.

Ich löste das Problem, indem ich die Annotation für den Feldnamen verwendete, die öffentlich war und die Getter / Setter ignorierte . Dies hat das Problem perfekt gelöst. Nicht die Daten wurden ordnungsgemäß mit dem Eigenschaftsnamen, den ich wollte, serialisiert, und es gab auch kein doppeltes Datenproblem.

Hier ist ein einfaches Beispiel,

%Vor%     
Aritra Roy 04.08.2016, 06:10
quelle
12

Alternativ können Sie Ihre Getter auch mit @PropertyName markieren, anstatt Eigenschaften selbst zu kommentieren. Auf diese Weise können Sie Eigenschaften bei Angabe benutzerdefinierter Namen privat halten:

%Vor%     
vir us 06.03.2017 20:53
quelle
4

Lösung für die Kotlin-Datenklasse:

%Vor%     
Hammer 18.10.2017 23:32
quelle