Benutzerregistrierung mit Parse in React Native umsetzen
11 min
benutzerregistrierung für react native einführung im kern vieler apps haben benutzerkonten eine vorstellung, die es benutzern ermöglicht, sicher auf ihre informationen zuzugreifen parse bietet eine spezialisierte benutzerklasse namens parse user, die automatisch einen großteil der für die verwaltung von benutzerkonten erforderlichen funktionalität übernimmt in diesem leitfaden lernen sie, wie \<font color="#2166ae">parse user\</font> klasse funktioniert, indem sie eine benutzerregistrierungsfunktion für ihre react native app mit dem parse js sdk erstellen voraussetzungen um dieses tutorial abzuschließen, benötigen sie eine react native app, die erstellt und mit back4app verbunden ist https //www back4app com/docs/react native/parse sdk/react native sdk ziel eine benutzerregistrierungsfunktion mit parse für eine react native app zu erstellen 1 verständnis der signup methode die benutzerverwaltung von parse verwendet den \<font color="#2166ae">parse user\</font> objekttyp, der den standard \<font color="#2166ae">parseobject\</font> typ erweitert und einzigartige hilfsmethoden enthält, wie \<font color="#2166ae">current\</font> und \<font color="#2166ae">getusername\</font> , die ihnen helfen, benutzerdaten in ihrer app abzurufen sie können mehr über das \<font color="#2166ae">parse user\</font> objekt hier in der offiziellen dokumentation https //parseplatform org/parse sdk js/api/2 18 0/parse user html lesen in diesem leitfaden lernen sie, wie sie die \<font color="#2166ae">signup\</font> methode verwenden, die ein neues gültiges und einzigartiges \<font color="#2166ae">parse user\</font> objekt sowohl lokal als auch auf dem server erstellt, wobei gültige \<font color="#2166ae">benutzername\</font> und \<font color="#2166ae">passwort\</font> werte als argumente verwendet werden 2 erstellen sie die benutzerregistrierungskomponente lass uns jetzt die funktionale komponente erstellen, die die \<font color="#2166ae">signup\</font> methode in unserer app aufruft zuerst erstelle eine neue datei in deinem stammverzeichnis mit dem namen \<font color="#2166ae">userregistration js\</font> ( \<font color="#2166ae">userregistration tsx\</font> wenn du typescript verwendest) und füge auch die benötigten eingabeelemente hinzu ( \<font color="#2166ae">benutzername\</font> und \<font color="#2166ae"> passwort\</font> eingaben), indem du zustandshooks über \<font color="#2166ae">usestate\</font> verwendest, um ihre daten zu verwalten userregistration js 1 import react, { fc, reactelement, usestate } from "react"; 2 import { button, stylesheet, textinput } from "react native"; 3 import parse from "parse/react native"; 4	 5 export const userregistration = () => { 6 const \[username, setusername] = usestate(""); 7 const \[password, setpassword] = usestate(""); 8	 9 return ( 10 <> 11 \<textinput 12 style={styles input} 13 value={username} 14 placeholder={"username"} 15 onchangetext={(text) => setusername(text)} 16 autocapitalize={"none"} 17 /> 18 \<textinput 19 style={styles input} 20 value={password} 21 placeholder={"password"} 22 securetextentry 23 onchangetext={(text) => setpassword(text)} 24 /> 25 \<button title={"sign up"} onpress={() => {}} /> 26 \</> 27 ); 28 }; 29	 30 const styles = stylesheet create({ 31 input { 32 height 40, 33 marginbottom 10, 34 backgroundcolor '#fff', 35 }, 36 }); userregistration tsx 1 import react, { fc, reactelement, usestate } from "react"; 2 import { button, stylesheet, textinput } from "react native"; 3 import parse from "parse/react native"; 4	 5 export const userregistration fc<{}> = ({}) reactelement => { 6 const \[username, setusername] = usestate(""); 7 const \[password, setpassword] = usestate(""); 8	 9 return ( 10 <> 11 \<textinput 12 style={styles input} 13 value={username} 14 placeholder={"username"} 15 onchangetext={(text) => setusername(text)} 16 autocapitalize={"none"} 17 /> 18 \<textinput 19 style={styles input} 20 value={password} 21 placeholder={"password"} 22 securetextentry 23 onchangetext={(text) => setpassword(text)} 24 /> 25 \<button title={"sign up"} onpress={() => {}} /> 26 \</> 27 ); 28 }; 29	 30 const styles = stylesheet create({ 31 input { 32 height 40, 33 marginbottom 10, 34 backgroundcolor '#fff', 35 }, 36 }); 3 erstellen sie eine anmeldefunktion sie können jetzt die anmeldefunktion erstellen, die die \<font color="#2166ae">signup\</font> methode aufruft javascript 1 const douserregistration = async function () { 2 // note that these values come from state variables that we've declared before 3 const usernamevalue = username; 4 const passwordvalue = password; 5 // since the signup method returns a promise, we need to call it using await 6 return await parse user signup(usernamevalue, passwordvalue) 7 then((createduser) => { 8 // parse user signup returns the already created parseuser object if successful 9 alert alert( 10 'success!', 11 `user ${createduser getusername()} was successfully created!`, 12 ); 13 return true; 14 }) 15 catch((error) => { 16 // signup can fail if any parameter is blank or failed an uniqueness check on the server 17 alert alert('error!', error message); 18 return false; 19 }); 20 };1 const douserregistration = async function () promise\<boolean> { 2 // note that these values come from state variables that we've declared before 3 const usernamevalue string = username; 4 const passwordvalue string = password; 5 // since the signup method returns a promise, we need to call it using await 6 return await parse user signup(usernamevalue, passwordvalue) 7 then((createduser parse user) => { 8 // parse user signup returns the already created parseuser object if successful 9 alert alert( 10 'success!', 11 `user ${createduser getusername()} was successfully created!`, 12 ); 13 return true; 14 }) 15 catch((error object) => { 16 // signup can fail if any parameter is blank or failed an uniqueness check on the server 17 alert alert('error!', error message); 18 return false; 19 }); 20 }; hinweis die erstellung eines neuen benutzers mit \<font color="#2166ae">signup\</font> macht ihn auch zum aktuell angemeldeten benutzer, sodass es nicht erforderlich ist, dass sich ihr benutzer erneut anmeldet, um ihre app weiterhin zu verwenden fügen sie diese funktion in die \<font color="#2166ae">userregistration\</font> komponente ein, direkt vor dem \<font color="#2166ae">return\</font> aufruf, um sie aufzurufen und zu testen denken sie daran, die aktion des anmelde buttons des formulars \<font color="#2166ae">onpress\</font> auf \<font color="#2166ae">() =\> douserregistration()\</font> zu aktualisieren und \<font color="#2166ae">alert\</font> von \<font color="#2166ae">react native\</font> ihre komponente sollte jetzt so aussehen userregistration js 1 import react, { fc, reactelement, usestate } from "react"; 2 import { alert, button, stylesheet, textinput } from "react native"; 3 import parse from "parse/react native"; 4	 5 export const userregistration = () => { 6 const \[username, setusername] = usestate(""); 7 const \[password, setpassword] = usestate(""); 8	 9 const douserregistration = async function () { 10 // note that these values come from state variables that we've declared before 11 const usernamevalue = username; 12 const passwordvalue = password; 13 // since the signup method returns a promise, we need to call it using await 14 return await parse user signup(usernamevalue, passwordvalue) 15 then((createduser) => { 16 // parse user signup returns the already created parseuser object if successful 17 alert alert( 18 "success!", 19 `user ${createduser get("username")} was successfully created!` 20 ); 21 return true; 22 }) 23 catch((error) => { 24 // signup can fail if any parameter is blank or failed an uniqueness check on the server 25 alert alert("error!", error message); 26 return false; 27 }); 28 }; 29	 30 return ( 31 <> 32 \<textinput 33 style={styles input} 34 value={username} 35 placeholder={"username"} 36 onchangetext={(text) => setusername(text)} 37 autocapitalize={"none"} 38 /> 39 \<textinput 40 style={styles input} 41 value={password} 42 placeholder={"password"} 43 securetextentry 44 onchangetext={(text) => setpassword(text)} 45 /> 46 \<button title={"sign up"} onpress={() => douserregistration()} /> 47 \</> 48 ); 49 }; 50	 51 const styles = stylesheet create({ 52 input { 53 height 40, 54 marginbottom 10, 55 backgroundcolor "#fff", 56 }, 57 }); userregistration tsx 1 import react, { fc, reactelement, usestate } from "react"; 2 import { alert, button, stylesheet, textinput } from "react native"; 3 import parse from "parse/react native"; 4	 5 export const userregistration fc<{}> = ({}) reactelement => { 6 const \[username, setusername] = usestate(""); 7 const \[password, setpassword] = usestate(""); 8	 9 const douserregistration = async function () promise\<boolean> { 10 // note that these values come from state variables that we've declared before 11 const usernamevalue string = username; 12 const passwordvalue string = password; 13 // since the signup method returns a promise, we need to call it using await 14 return await parse user signup(usernamevalue, passwordvalue) 15 then((createduser parse user) => { 16 // parse user signup returns the already created parseuser object if successful 17 alert alert( 18 "success!", 19 `user ${createduser get("username")} was successfully created!` 20 ); 21 return true; 22 }) 23 catch((error object) => { 24 // signup can fail if any parameter is blank or failed an uniqueness check on the server 25 alert alert("error!", error message); 26 return false; 27 }); 28 }; 29	 30 return ( 31 <> 32 \<textinput 33 style={styles input} 34 value={username} 35 placeholder={"username"} 36 onchangetext={(text) => setusername(text)} 37 autocapitalize={"none"} 38 /> 39 \<textinput 40 style={styles input} 41 value={password} 42 placeholder={"password"} 43 securetextentry 44 onchangetext={(text) => setpassword(text)} 45 /> 46 \<button title={"sign up"} onpress={() => douserregistration()} /> 47 \</> 48 ); 49 }; 50	 51 const styles = stylesheet create({ 52 input { 53 height 40, 54 marginbottom 10, 55 backgroundcolor "#fff", 56 }, 57 }); 4 testen der komponente der letzte schritt besteht darin, unsere neue komponente in ihrer react native anwendung zu verwenden \<font color="#2166ae">app js\</font> datei (oder \<font color="#2166ae">app tsx\</font> bei verwendung von typescript) app js 1 import { userregistration } from " /userregistration"; 2 / 3 your functions here 4 / 5 return ( 6 <> 7 \<statusbar /> 8 \<safeareaview style={styles container}> 9 <> 10 \<text style={styles title}>react native on back4app\</text> 11 \<text>user registration tutorial\</text> 12 \<userregistration /> 13 \</> 14 \</safeareaview> 15 \</> 16 ); 17	 18 // remember to add some styles at the end of your file 19 const styles = stylesheet create({ 20 container { 21 flex 1, 22 backgroundcolor "#fff", 23 alignitems "center", 24 justifycontent "center", 25 }, 26 title { 27 fontsize 20, 28 fontweight "bold", 29 }, 30 }); app tsx 1 import { userregistration } from " /userregistration"; 2 / 3 your functions here 4 / 5 return ( 6 <> 7 \<statusbar /> 8 \<safeareaview style={styles container}> 9 <> 10 \<text style={styles title}>react native on back4app\</text> 11 \<text>user registration tutorial\</text> 12 \<userregistration /> 13 \</> 14 \</safeareaview> 15 \</> 16 ); 17	 18 // remember to add some styles at the end of your file 19 const styles = stylesheet create({ 20 container { 21 flex 1, 22 backgroundcolor "#fff", 23 alignitems "center", 24 justifycontent "center", 25 }, 26 title { 27 fontsize 20, 28 fontweight "bold", 29 }, 30 }); ihre app sollte jetzt so aussehen nachdem sie die gewünschten benutzeranmeldeinformationen eingegeben haben, sehen sie diese nachricht, nachdem sie auf \<font color="#2166ae">registrieren\</font> gedrückt haben, wenn alles erfolgreich war die fehlerbehandlung kann getestet werden, wenn sie versuchen, einen benutzer mit demselben benutzernamen wie zuvor zu registrieren sie erhalten einen weiteren fehler, wenn sie versuchen, sich ohne passwort anzumelden fazit am ende dieses leitfadens haben sie gelernt, wie man neue parse benutzer in react native registriert im nächsten leitfaden zeigen wir ihnen, wie sie benutzer ein und ausloggen