Get started
Lettura e scrittura dei dati
10 min
questa guida ti insegnerà come creare, leggere, aggiornare e eliminare oggetti dati su back4app utilizzando il parse sdk l'archiviazione dei dati su back4app ruota attorno alla parse object classe, che ti consente di memorizzare coppie chiave valore di dati compatibili con json, fornendo flessibilità e semplicità nella gestione dei dati obiettivi comprendere come eseguire la manipolazione dei dati (crud) su back4app utilizzando il parse sdk imparare come configurare e utilizzare il parse sdk su diverse piattaforme prerequisiti app su back4app hai bisogno di un'app creata su back4app guida per creare una nuova app https //www back4app com/docs/get started/new parse app installazione del parse sdk guida all'installazione del parse sdk https //www back4app com/docs/get started/parse sdk 1 creazione di oggetti parse per memorizzare dati su back4app, è necessario creare un parseobject associato a una classe specifica ad esempio, in un'applicazione legata al calcio, potresti creare una soccerplayers classe per memorizzare dati sui giocatori async function savenewplayer() { const soccerplayers = new parse object("soccerplayers"); soccerplayers set("playername", "a wed"); soccerplayers set("yearofbirth", 1997); soccerplayers set("emailcontact", "a wed\@email io"); soccerplayers set("attributes", \["fast", "good conditioning"]); try { const result = await soccerplayers save(); console log('new object created with objectid ' + result id); } catch (error) { console error('error ' + error message); } } flutter parseobject soccerplayers = parseobject('soccerplayers') set('playername', 'a wed') set('yearofbirth', 1997) set('emailcontact', 'a wed\@email io') set('attributes', \['fast', 'good conditioning']); parseresponse response = await soccerplayers save(); if (response success) { print('new object created with objectid ${response result objectid}'); } else { print('error ${response error message}'); } android parseobject soccerplayers = new parseobject("soccerplayers"); soccerplayers put("playername", "a wed"); soccerplayers put("yearofbirth", 1997); soccerplayers put("emailcontact", "a wed\@email io"); soccerplayers put("attributes", arrays aslist("fast", "good conditioning")); soccerplayers saveinbackground(e > { if (e == null) { log d("parse", "new object created with objectid " + soccerplayers getobjectid()); } else { log e("parseerror", e getmessage()); } }); ios let soccerplayer = parseobject(classname "soccerplayers") soccerplayer\["playername"] = "a wed" soccerplayer\["yearofbirth"] = 1997 soccerplayer\["emailcontact"] = "a wed\@email io" soccerplayer\["attributes"] = \["fast", "good conditioning"] soccerplayer save { result in switch result { case success(let savedplayer) print("new object created with objectid \\(savedplayer objectid!)") case failure(let error) print("error \\(error localizeddescription)") } } php $soccerplayers = new parseobject("soccerplayers"); $soccerplayers >set("playername", "a wed"); $soccerplayers >set("yearofbirth", 1997); $soccerplayers >set("emailcontact", "a wed\@email io"); $soccerplayers >setarray("attributes", \["fast", "good conditioning"]); try { $soccerplayers >save(); echo 'new object created with objectid ' $soccerplayers >getobjectid(); } catch (parseexception $ex) { echo 'error ' $ex >getmessage(); } net parseobject soccerplayers = new parseobject("soccerplayers"); soccerplayers\["playername"] = "a wed"; soccerplayers\["yearofbirth"] = 1997; soccerplayers\["emailcontact"] = "a wed\@email io"; soccerplayers\["attributes"] = new list\<string> { "fast", "good conditioning" }; await soccerplayers saveasync(); console writeline("new object created with objectid " + soccerplayers objectid); rest api curl x post \\ h "x parse application id application id" \\ h "x parse rest api key rest api key" \\ h "content type application/json" \\ d '{ "playername" "a wed", "yearofbirth" 1997, "emailcontact" "a wed\@email io", "attributes" \["fast", "good conditioning"] }' \\ https //parseapi back4app com/classes/soccerplayers dopo aver eseguito questo codice, puoi verificare il nuovo oggetto nella database sezione del back4app dashboard nota che non è necessario creare manualmente la classe soccerplayers; verrà creata automaticamente la prima volta che un oggetto viene salvato 2 leggere oggetti parse per recuperare i dati salvati, puoi utilizzare un parsequery ad esempio, per recuperare il giocatore creato sopra tramite il suo objectid js async function retrieveplayer() { const query = new parse query("soccerplayers"); try { const player = await query get("hmctr9rd3s"); // replace with the actual objectid console log("player name " + player get("playername")); console log("year of birth " + player get("yearofbirth")); console log("email contact " + player get("emailcontact")); } catch (error) { console error("error retrieving object " + error message); } } flutter parseresponse response = await parseobject("soccerplayers") getobject("hmctr9rd3s"); // replace with the actual objectid if (response success) { parseobject player = response result; print("player name ${player get\<string>('playername')}"); print("year of birth ${player get\<int>('yearofbirth')}"); print("email contact ${player get\<string>('emailcontact')}"); } else { print("error retrieving object ${response error message}"); } android parsequery\<parseobject> query = parsequery getquery("soccerplayers"); query getinbackground("hmctr9rd3s", (player, e) > { // replace with the actual objectid if (e == null) { log d("parse", "player name " + player getstring("playername")); log d("parse", "year of birth " + player getint("yearofbirth")); log d("parse", "email contact " + player getstring("emailcontact")); } else { log e("parseerror", "error retrieving object " + e getmessage()); } }); ios let query = parsequery(classname "soccerplayers") query get(objectid "hmctr9rd3s") { result in // replace with the actual objectid switch result { case success(let player) print("player name \\(player\["playername"] ?? "no name")") print("year of birth \\(player\["yearofbirth"] ?? "no birth year")") print("email contact \\(player\["emailcontact"] ?? "no email")") case failure(let error) print("error retrieving object \\(error localizeddescription)") } } php $query = new parsequery("soccerplayers"); try { $player = $query >get("hmctr9rd3s"); // replace with the actual objectid echo "player name " $player >get("playername") "\n"; echo "year of birth " $player >get("yearofbirth") "\n"; echo "email contact " $player >get("emailcontact") "\n"; } catch (parseexception $ex) { echo 'error retrieving object ' $ex >getmessage(); } net var query = parseobject getquery("soccerplayers"); var player = await query getasync("hmctr9rd3s"); // replace with the actual objectid console writeline("player name " + player get\<string>("playername")); console writeline("year of birth " + player get\<int>("yearofbirth")); console writeline("email contact " + player get\<string>("emailcontact")); rest api curl x get \\ h "x parse application id application id" \\ h "x parse rest api key rest api key" \\ https //parseapi back4app com/classes/soccerplayers/hmctr9rd3s # replace with the actual objectid in aggiunta a objectid , puoi anche interrogare per altri parametri (ad es , yearofbirth , playername , offrendo maggiore flessibilità nelle ricerche di dati 3 aggiornamento degli oggetti parse per aggiornare un oggetto, recuperalo prima, imposta nuovi valori per gli attributi desiderati e chiama il save() metodo async function updateplayer() { const query = new parse query("soccerplayers"); try { const player = await query get("hmctr9rd3s"); // replace with the actual objectid player set("yearofbirth", 1998); await player save(); console log("object updated successfully!"); } catch (error) { console error("error updating object " + error message); } } flutter parseobject player = parseobject("soccerplayers") objectid = "hmctr9rd3s"; // replace with the actual objectid player set("yearofbirth", 1998); parseresponse response = await player save(); if (response success) { print("object updated successfully!"); } else { print("error updating object ${response error message}"); } android parsequery\<parseobject> query = parsequery getquery("soccerplayers"); query getinbackground("hmctr9rd3s", (player, e) > { // replace with the actual objectid if (e == null) { player put("yearofbirth", 1998); player saveinbackground(e1 > { if (e1 == null) { log d("parse", "object updated successfully!"); } else { log e("parseerror", "error updating object " + e1 getmessage()); } }); } else { log e("parseerror", "error retrieving object " + e getmessage()); } }); ios let query = parsequery(classname "soccerplayers") query get(objectid "hmctr9rd3s") { result in // replace with the actual objectid switch result { case success(var player) player\["yearofbirth"] = 1998 player save { saveresult in switch saveresult { case success print("object updated successfully!") case failure(let error) print("error updating object \\(error localizeddescription)") } } case failure(let error) print("error retrieving object \\(error localizeddescription)") } }$query = new parsequery("soccerplayers"); try { $player = $query >get("hmctr9rd3s"); // replace with the actual objectid $player >set("yearofbirth", 1998); $player >save(); echo "object updated successfully!"; } catch (parseexception $ex) { echo 'error updating object ' $ex >getmessage(); } net var query = parseobject getquery("soccerplayers"); var player = await query getasync("hmctr9rd3s"); // replace with the actual objectid player\["yearofbirth"] = 1998; await player saveasync(); console writeline("object updated successfully!"); rest api curl x put \\ h "x parse application id application id" \\ h "x parse rest api key rest api key" \\ h "content type application/json" \\ d '{"yearofbirth" 1998}' \\ https //parseapi back4app com/classes/soccerplayers/hmctr9rd3s # replace with the actual objectid 4 cancellazione degli oggetti parse per eliminare un oggetto, recuperalo tramite objectid e utilizza il destroy() metodo async function deleteplayer() { const query = new parse query("soccerplayers"); try { const player = await query get("hmctr9rd3s"); // replace with the actual objectid await player destroy(); console log("object deleted successfully!"); } catch (error) { console error("error deleting object " + error message); } } flutter parseobject player = parseobject("soccerplayers") objectid = "hmctr9rd3s"; // replace with the actual objectid parseresponse response = await player delete(); if (response success) { print("object deleted successfully!"); } else { print("error deleting object ${response error message}"); } android parsequery\<parseobject> query = parsequery getquery("soccerplayers"); query getinbackground("hmctr9rd3s", (player, e) > { // replace with the actual objectid if (e == null) { player deleteinbackground(e1 > { if (e1 == null) { log d("parse", "object deleted successfully!"); } else { log e("parseerror", "error deleting object " + e1 getmessage()); } }); } else { log e("parseerror", "error retrieving object " + e getmessage()); } }); ios let query = parsequery(classname "soccerplayers") query get(objectid "hmctr9rd3s") { result in // replace with the actual objectid switch result { case success(let player) player delete { deleteresult in switch deleteresult { case success print("object deleted successfully!") case failure(let error) print("error deleting object \\(error localizeddescription)") } } case failure(let error) print("error retrieving object \\(error localizeddescription)") } } php $query = new parsequery("soccerplayers"); try { $player = $query >get("hmctr9rd3s"); // replace with the actual objectid $player >destroy(); echo "object deleted successfully!"; } catch (parseexception $ex) { echo 'error deleting object ' $ex >getmessage(); } net var query = parseobject getquery("soccerplayers"); var player = await query getasync("hmctr9rd3s"); // replace with the actual objectid await player deleteasync(); console writeline("object deleted successfully!"); rest api curl x delete \\ h "x parse application id application id" \\ h "x parse rest api key rest api key" \\ https //parseapi back4app com/classes/soccerplayers/hmctr9rd3s # replace with the actual objectid ancora una volta, non è necessario recuperare l'oggetto tramite il suo objectid objectid parse ha molte alternative di ricerca per recuperare informazioni da parseobjects parseobjects , di cui puoi scoprire di più nella documentazione ufficiale di parse per ciascuna tecnologia distinta migliori pratiche e suggerimenti aggiuntivi convenzioni di nomenclatura usa classnameslikethis per le classi e keynameslikethis per le chiavi per mantenere il tuo codice organizzato e leggibile controlli di errore comuni se riscontri problemi di connessione con il parse sdk, verifica il tuo installazione e configurazione dell'sdk campi automatici ricorda che ogni oggetto parse include automaticamente i campi createdat , updatedat , e objectid prossimi passi dopo aver salvato e letto i tuoi primi dati su back4app, ti consigliamo di continuare a esplorare l'archiviazione dei dati utilizzando le guide qui sotto troverai come memorizzare i tipi di dati supportati, salvare e interrogare dati relazionali, utilizzare geopunti e creare modelli di dati ottimizzati react native flutter android ios javascript graphql reactjs conclusione questa guida fornisce un solido punto di partenza per lavorare con i dati su back4app, rendendo facile la memorizzazione e la manipolazione dei dati su diverse piattaforme utilizzando il parse sdk per qualsiasi domanda, non esitare a contattare il supporto di back4app !