2017-11-08 2 views
0

Ich bin in ein seltsames Problem mit php Firebase-Implementierung, ich benutze ktamas77/firebase-php und ich möchte den Datensatz über eine JSON doc zu füllen. Aber es scheint, jedes Mal, wenn ich versuche, ein json doc einfügen überFirebase-Datenbank und PHP

$success = $firebase->set(1 . '/AwayTeam/' . '123456', $myJSON); 

i ein Format-String in Feuerbasis db, das wie dieser

sieht "{\" user_id \ ": \" jack \ ", \" text \ ": \" Ahoi! \ "}"

was fehlt mir hier?

+0

$ myObj-> last = "Miller"; $ myObj-> name = "John"; $ myObj-> Alter = 30; $ myObj-> city = "New York"; $ myJSON = json_encode ($ myObj); – NoSoup4you

+0

Entschuldigung, ich habe meine frühere Anfrage für weitere Informationen gelöscht und stattdessen direkt eine Antwort gepostet, nachdem ich den Quellcode der Firebase-PHP-Bibliothek gelesen hatte. – Mastacheata

Antwort

1

Wie Sie in der firebase-php sourcecode sehen können, akzeptiert es keine unverarbeiteten JSON-Strings, die in die Datenbank eingegeben werden sollen. Stattdessen führt die Bibliothek einen json_encode für alles aus, was Sie als $ data eingeben.

Sie jede Decodierung/Codierung nicht tun, wenn Sie PHP-Objekte in der Datenbank gespeichert werden sollen:

$success = $firebase->set(1 . '/AwayTeam/' . '123456', $myObj); 

Um JSON mit der Bibliothek einzufügen, werden Sie es in eine PHP entschlüsseln müssen Objekt/Array zuerst:

$success = $firebase->set(1 . '/AwayTeam/' . '123456', json_decode($myJSON)); 
+0

Danke, ich habe die Codierung verwendet und nicht decodieren ... – NoSoup4you

+0

Mit den Informationen aus Ihrem Kommentar würde ich vorschlagen, überhaupt keine json_ * Funktionen zu betreiben. Sie haben bereits ein PHP-Objekt, das Sie an die set-Funktion übergeben können. (z. B. statt $ myJSON oder json_decode ($ myJSON) übergeben Sie einfach $ myObj) – Mastacheata

+0

Bearbeitete meine Antwort, um diese Option zu zeigen, basierend auf dem Beispielcode in Form Ihres Fragekommentars. – Mastacheata