2017-03-06 6 views
0

Hallo Community :) Ich habe viele gute funktionierende Funktionalität mit Firebase -> Realm implementiert. Jetzt habe ich versucht, eine Struktur zu bearbeiten und ich laufe durch die wildesten Fehlermeldungen.Realm - Wert nicht konvertierbar zu einer Nummer

Was sicher richtig ist:

  • Firebase die Daten
  • Daten umgewandelt wird sendet (zB Firebase hat "Marken", wie array -> in einen String für Realm umgewandelt wird Schema)
  • Der Fehler erscheint, wenn Firebase Updates
  • nicht alle Firebase-Inhalt hat alle Felder (z. Wie Sie einige Felder sind optional aus Realm Schema sehen können: true)

Felder, wo ich vielleicht ein Problem erwarten:

  • Vielleicht ist es nicht möglich zu sagen, dass der ReferentList optional (oder i implementiert es falsch): Siehe Realm Schema konst ReferentsList

Was habe ich versucht,

  • Debug vor realm.create (Realm Satz) Ergebnis: Alle Daten im richtigen Format kam
  • alle Eingabewerte überprüft, ob sie int sind, string, ...

Hoffentlich jemand kann mir hier helfen, weil ich komplett mit diesem Problem und seiner Notwendigkeit für mein Projekt fortgefahren bin. Ich will wissen:

  • Die Lösung, warum oder was in einer besseren Art und Weise
  • Ein posibility zu debuggen Reich tun Sie für Ihre Zeit im Voraus danken und helfen :)

Fehlermeldung:Wert umgewandelt werden zu einer Reihe

Fi rebase Datenstruktur

  • "begin": "2017-05-15T15: 50: 00.000Z"
  • "description": "abc",
  • "end": „2017-05 -15T16: 15: 00.000Z "
  • "id": 6,
  • "Sprache": [1],
  • "location":" L 1.02" ,
  • "Mitglied": 20,
  • "Bezugspunkt": [1, 3],
  • "Register": true,
  • "title": "Sound of Silence",
  • "Track": 6,
  • "type": 3,
  • "Marken": [1, 2, 3]

Realm Schema

const ReferentListSchema = { 
 
    name: 'ReferentList', 
 
    properties: { 
 
     id: { 
 
      type: 'int', 
 
      optional: true 
 
     } 
 
    } 
 
} 
 

 
const LanguageListSchema = { 
 
    name: 'LanguageList', 
 
    properties: { 
 
     id: 'int' 
 
    } 
 
} 
 

 
const EventSchema = { 
 
    name: 'Events', 
 
    primaryKey: 'id', 
 
    properties: { 
 
     id: 'int', 
 
     begin: { 
 
      type: 'date', 
 
      optional: true 
 
     }, 
 
     end: { 
 
      type: 'date', 
 
      optional: true 
 
     }, 
 
     title: 'string', 
 
     description: 'string', 
 
     register: 'bool', 
 
     member: { 
 
      type: 'int', 
 
      optional: true 
 
     }, 
 
     language: { 
 
      type: 'list', 
 
      objectType: 'LanguageList' 
 
     }, 
 
     location: 'string', 
 
     referent: { 
 
      type: 'list', 
 
      objectType: 'ReferentList' 
 
     }, 
 
     type: 'int', 
 
     track: { 
 
      type: 'int', 
 
      optional: true 
 
     }, 
 
     img: { 
 
      type: 'string', 
 
      optional: true 
 
     }, 
 
     brands:{ 
 
      type: 'string', 
 
      optional: true 
 
     } 
 
    } 
 
}

Realm gesetzt

set(obj) { 
 
    realm.write(() => { 
 
     if(obj.referent){ 
 
      obj.referent = obj.referent.map(function(id) { 
 
       return {id}; 
 
      }) 
 
     } 
 
     if (obj.language){ 
 
      obj.language = obj.language.map(function(id) { 
 
       return {id}; 
 
      }) 
 
     } 
 
     realm.create('Events', obj, true); 
 
    }); 
 
}

Antwort

0

Gelöst :! Das Problem wurde durch falsche Daten bei Firebase gelöst. Einige Datum Objekte wurden korrekt eingestellt.

Wie ich zu der Lösung bekam Wenn ich den Code zu debugg habe ich versucht, um einen try/catch-Block gemacht:

try{ 
 
    realm.create('Events', obj, true); 
 
}catch(error){ 
 
    console.log(obj); 
 
    console.log(error); 
 
}

Durch diese Debug fand ich die richtigen Daten was war falsch. Vorher zeigte es mir nur alle Objekte und danach den Fehler.

Ich werde diese Frage nicht wegen der Möglichkeit schließen, jemandem mit den gleichen Problemen zu helfen.-

Verwandte Themen