Get started
Leitura e Escrita de dados
10 min
este guia ensinará você a criar, ler, atualizar e excluir objetos de dados no back4app usando o parse sdk o armazenamento de dados no back4app gira em torno da parse object classe, que permite armazenar pares de chave valor de dados compatíveis com json, proporcionando flexibilidade e simplicidade na gestão de dados objetivos entender como realizar manipulação de dados (crud) no back4app usando o parse sdk aprender como configurar e usar o parse sdk em diferentes plataformas pré requisitos app no back4app você precisa de um app criado no back4app guia para criar um novo app https //www back4app com/docs/get started/new parse app instalação do parse sdk guia de instalação do parse sdk https //www back4app com/docs/get started/parse sdk 1 criando objetos parse para armazenar dados no back4app, você precisa criar um parseobject associado a uma classe específica por exemplo, em uma aplicação relacionada ao futebol, você poderia criar uma soccerplayers classe para armazenar dados sobre jogadores 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 após executar este código, você pode verificar o novo objeto na base de dados seção do painel do back4app observe que você não precisa criar manualmente a classe soccerplayers; ela será criada automaticamente na primeira vez que um objeto for salvo 2 lendo objetos parse para recuperar dados salvos, você pode usar um parsequery por exemplo, para buscar o jogador criado acima pelo seu 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 além de objectid , você também pode consultar por outros parâmetros (por exemplo, yearofbirth , playername ), oferecendo maior flexibilidade nas buscas de dados 3 atualizando objetos parse para atualizar um objeto, primeiro recupere o, defina novos valores para os atributos desejados e chame o save() método 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 deletando objetos parse para deletar um objeto, recupere o pelo objectid e use o destroy() método 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 novamente, você não precisa recuperar o objeto pelo seu objectid objectid o parse tem muitas alternativas de busca para recuperar informações de parseobjects parseobjects , das quais você pode saber mais na documentação oficial do parse para cada tecnologia distinta melhores práticas e dicas adicionais convenções de nomenclatura use classnameslikethis para classes e keynameslikethis para chaves para manter seu código organizado e legível verificações de erros comuns se você tiver problemas ao se conectar ao parse sdk, verifique sua instalação e configuração do sdk campos automáticos lembre se de que cada objeto parse inclui automaticamente os campos createdat , updatedat , e objectid próximos passos após persistir e ler seus primeiros dados no back4app, recomendamos continuar explorando o armazenamento de dados usando os guias abaixo você encontrará como armazenar tipos de dados suportados, salvar e consultar dados relacionais, usar geopontos e criar modelos de dados otimizados react native flutter android ios javascript graphql reactjs conclusão este guia fornece um ponto de partida sólido para trabalhar com dados no back4app, facilitando o armazenamento e a manipulação de dados entre plataformas usando o parse sdk para qualquer dúvida, sinta se à vontade para entrar em contato com o suporte do back4app !