Quickstarters
Feature Overview
Wie man ein Backend für Blazor erstellt?
38 min
einführung in diesem tutorial lernen sie, wie sie ein vollständiges backend für eine blazor anwendung mit back4app erstellen wir werden die integration wesentlicher back4app funktionen durchgehen wie z b datenbankverwaltung, cloud code funktionen, rest und graphql apis, benutzerauthentifizierung und echtzeitanfragen (live queries) um ein sicheres, skalierbares und robustes backend zu erstellen, das nahtlos mit ihrem blazor frontend kommuniziert die nutzung der robusten backend dienste von back4app mit blazor, einem asp net core framework zum erstellen interaktiver web uis mit c#, ermöglicht es entwicklern, die backend entwicklung zu beschleunigen egal, ob sie eine blazor server app oder eine blazor webassembly app erstellen, die nahtlose integration mit back4app kann die entwicklungszeit drastisch verkürzen und gleichzeitig eine hochwertige serverseitige geschäftslogik gewährleisten am ende dieses tutorials haben sie eine sichere backend struktur erstellt, die auf eine full stack webanwendung mit blazor zugeschnitten ist sie werden einblicke erhalten, wie sie datenoperationen durchführen, sicherheitskontrollen anwenden und cloud funktionen implementieren, um ihre blazor webanwendung robust und skalierbar zu machen voraussetzungen um dieses tutorial abzuschließen, benötigen sie ein back4app konto und ein neues back4app projekt erste schritte mit back4app https //www back4app com/docs/get started/new parse app wenn sie kein konto haben, können sie eines kostenlos erstellen befolgen sie die obige anleitung, um ihr projekt vorzubereiten grundlegende blazor entwicklungsumgebung sie können dies einrichten, indem sie das neueste net sdk von microsoft https //dotnet microsoft com/download installieren und ein neues blazor projekt mit vorlagen wie dotnet new blazorserver oder dotnet new blazorwasm erstellen net sdk (version 6 oder höher) installiert stellen sie sicher, dass sie das net sdk zum erstellen und ausführen von blazor apps haben vertrautheit mit c# und blazor konzepten offizielle blazor dokumentation https //docs microsoft com/en us/aspnet/core/blazor/?view=aspnetcore 6 0 wenn sie neu bei blazor sind, lesen sie die offiziellen dokumente oder ein anfänger tutorial, bevor sie beginnen stellen sie sicher, dass sie diese voraussetzungen haben, bevor sie beginnen, um ein reibungsloses tutorial erlebnis zu gewährleisten schritt 1 – einrichten des back4app projekts ein neues projekt erstellen der erste schritt beim erstellen ihres blazor backends auf back4app besteht darin, ein neues projekt zu erstellen wenn sie noch keines erstellt haben, folgen sie diesen schritten melden sie sich bei ihrem back4app konto an klicken sie auf die schaltfläche „neue app“ in ihrem back4app dashboard geben sie ihrer app einen namen (z b „blazor backend tutorial“) sobald das projekt erstellt ist, sehen sie es in ihrem back4app dashboard aufgeführt dieses projekt wird die grundlage für alle backend konfigurationen sein, die in diesem tutorial besprochen werden verbinden sie das parse sdk back4app basiert auf der parse plattform, um ihre daten zu verwalten, echtzeitfunktionen bereitzustellen, die benutzerauthentifizierung zu handhaben und mehr die verbindung ihrer blazor anwendung mit back4app umfasst die installation des parse sdk für net und die initialisierung mit den anmeldeinformationen aus ihrem back4app dashboard rufen sie ihre parse schlüssel ab navigieren sie in ihrem back4app dashboard zum abschnitt „app einstellungen“ oder „sicherheit & schlüssel“, um ihre anwendungs id und net schlüssel sie finden auch die parse server url (oft im format https //parseapi back4app com ) installieren sie das parse sdk in ihrem blazor projekt dotnet add package parse initialisieren sie parse in ihrer blazor anwendung typischerweise würden sie die initialisierung in der program cs oder einer speziellen dienstklasse einrichten program cs using parse; var builder = webapplication createbuilder(args); // parse initialisieren parseclient initialize(new parseclient configuration { applicationid = "ihre anwendungs id", windowskey = "ihre dotnet key", server = "https //parseapi back4app com" }); var app = builder build(); // rest ihrer konfiguration diese konfiguration stellt sicher, dass jedes mal, wenn sie parse in ihrer blazor anwendung verwenden, es vorkonfiguriert ist, um sich mit ihrer spezifischen back4app instanz zu verbinden durch den abschluss dieses schrittes haben sie eine sichere verbindung zwischen ihrem blazor frontend und dem back4app backend hergestellt, die den weg für datenbankoperationen, benutzerverwaltung und mehr ebnet schritt 2 – datenbank einrichten daten speichern und abfragen mit ihrem back4app projekt, das eingerichtet und das parse sdk in ihre blazor app integriert ist, können sie jetzt mit dem speichern und abrufen von daten beginnen der einfachste weg, einen datensatz zu erstellen, ist die verwendung der parseobject klasse somedataservice cs using parse; using system threading tasks; public class somedataservice { public async task\<parseobject> createtodoitemasync(string title, bool iscompleted) { var todo = new parseobject("todo"); todo\["title"] = title; todo\["iscompleted"] = iscompleted; try { await todo saveasync(); console writeline("todo saved successfully " + todo objectid); return todo; } catch (exception ex) { console writeline("error saving todo " + ex message); return null; } } public async task\<ilist\<parseobject>> fetchtodosasync() { var query = new parsequery\<parseobject>("todo"); try { var results = await query findasync(); console writeline("fetched todo items " + results count); return results; } catch (exception ex) { console writeline("error fetching todos " + ex message); return null; } } } alternativ können sie die rest api endpunkte von back4app für operationen verwenden schema design und datentypen standardmäßig erlaubt parse schemaerstellung zur laufzeit , aber sie können auch ihre klassen und datentypen im back4app dashboard definieren, um mehr kontrolle zu haben navigieren sie zum abschnitt “datenbank” in ihrem back4app dashboard erstellen sie eine neue klasse (z b “todo”) und fügen sie relevante spalten hinzu, wie titel (string) und iscompleted (boolean) back4app unterstützt auch verschiedene datentypen string , zahl , boolean , objekt , datum , datei , zeiger, array, relation , geopoint , und polygon sie können den entsprechenden typ für jedes feld auswählen wenn sie möchten, können sie auch parse automatisch diese spalten erstellen lassen, wenn sie ein objekt aus ihrer blazor app zum ersten mal speichern back4app bietet einen ki agenten, der ihnen helfen kann, ihr datenmodell zu entwerfen öffnen sie den ki agenten von ihrem app dashboard oder im menü beschreiben sie ihr datenmodell in einfacher sprache (z b „bitte erstellen sie eine neue todo app bei back4app mit einem vollständigen klassenschema “) lassen sie den ki agenten das schema für sie erstellen die verwendung des ki agenten kann ihnen zeit bei der einrichtung ihrer datenarchitektur sparen und konsistenz in ihrer anwendung gewährleisten relationale daten wenn sie relationale daten haben zum beispiel ein kategorie objekt, das auf mehrere todo elemente verweist können sie zeiger oder relationen in parse verwenden der prozess ist ähnlich wie bei reactjs, verwendet jedoch net objekte somedataservice cs (fortsetzung) public async task\<parseobject> createtaskforcategoryasync(string categoryobjectid, string title) { var todo = new parseobject("todo"); // erstellen sie einen zeiger auf die kategorie var categorypointer = parseobject createwithoutdata("category", categoryobjectid); todo\["title"] = title; todo\["category"] = categorypointer; try { await todo saveasync(); return todo; } catch (exception ex) { console writeline("fehler beim erstellen der aufgabe mit der kategorierelation " + ex message); return null; } } beim abfragen, fügen sie zeiger daten ein somedataservice cs (continuation) public async task\<ilist\<parseobject>> fetchtodoswithcategoryasync() { var query = new parsequery\<parseobject>("todo") include("category"); try { var todoswithcategory = await query findasync(); return todoswithcategory; } catch (exception ex) { console writeline("error fetching todos with category " + ex message); return null; } } live abfragen für echtzeit updates in einer blazor server app sollten sie eine signalr verbindung für live abfragen in betracht ziehen obwohl das parse net sdk live abfragen unterstützt, kann die direkte integration in eine blazor anwendung zusätzliche konfigurationen mit signalr für die echtzeitkommunikation erfordern aktivieren sie live abfragen in ihrem back4app dashboard unter den servereinstellungen stellen sie sicher, dass „live abfragen“ aktiviert ist konfigurieren sie den live query client in net, falls erforderlich für blazor apps kann es jedoch idiomatischer sein, signalr für serverseitige verbindungen zu nutzen aufgrund der komplexität der einrichtung von live abfragen in blazor und der potenziellen einschränkungen des parse net sdk in blazor webassembly müssen sie möglicherweise einen serverseitigen dienst implementieren, der parse live abfragen mit signalr clients verbindet schritt 3 – anwendung von sicherheit mit acls und clps back4app sicherheitsmechanismus back4app nimmt sicherheit ernst, indem es zugriffskontrolllisten (acls) und klassenebene berechtigungen (clps) diese funktionen ermöglichen es ihnen, einzuschränken, wer daten auf objekt oder klassenbasis lesen oder schreiben kann, und stellen sicher, dass nur autorisierte benutzer ihre daten ändern können zugriffskontrolllisten (acls) eine acl wird auf einzelne objekte angewendet, um zu bestimmen, welche benutzer, rollen oder die öffentlichkeit lese /schreiboperationen durchführen können zum beispiel somedataservice cs (acl example) public async task\<parseobject> createprivatetodoasync(string title, parseuser owneruser) { var todo = new parseobject("todo"); todo\["title"] = title; // create an acl granting read/write access only to the owner var acl = new parseacl(owneruser); acl publicreadaccess = false; acl publicwriteaccess = false; todo acl = acl; try { await todo saveasync(); return todo; } catch (exception ex) { console writeline("error saving private todo " + ex message); return null; } } wenn sie das objekt speichern, hat es eine acl, die verhindert, dass jemand außer dem angegebenen benutzer es liest oder ändert klassenebene berechtigungen (clps) clps regeln die standardberechtigungen einer gesamten klasse, wie z b ob die klasse öffentlich lesbar oder schreibbar ist oder ob nur bestimmte rollen darauf zugreifen können gehen sie zu ihrem back4app dashboard , wählen sie ihre app aus und öffnen sie den datenbank bereich wählen sie eine klasse aus (z b „todo“) öffnen sie die klassenebene berechtigungen registerkarte konfigurieren sie ihre standardwerte, wie „erfordert authentifizierung“ für lesen oder schreiben oder „kein zugriff“ für die öffentlichkeit diese berechtigungen legen die grundlage fest, während acls die berechtigungen für einzelne objekte verfeinern ein robustes sicherheitsmodell kombiniert typischerweise sowohl clps (breite einschränkungen) als auch acls (fein abgestufte einschränkungen pro objekt) für weitere informationen besuchen sie app sicherheitsrichtlinien https //www back4app com/docs/security/parse security schritt 4 – schreiben und bereitstellen von cloud funktionen cloud code ist eine funktion der parse server umgebung, die es ihnen ermöglicht, benutzerdefinierten javascript code auf der serverseite auszuführen ohne dass sie ihre server oder infrastruktur verwalten müssen durch das schreiben von cloud code können sie ihr back4app backend mit zusätzlicher geschäftslogik, validierungen, triggern und integrationen erweitern, die sicher und effizient auf dem parse server ausgeführt werden wie es funktioniert wenn sie cloud code schreiben, platzieren sie typischerweise ihre javascript funktionen, trigger und alle erforderlichen npm module in einer main js (oder app js ) datei diese datei wird dann in ihr back4app projekt bereitgestellt, das innerhalb der parse server umgebung ausgeführt wird da diese funktionen und trigger auf dem server ausgeführt werden, können sie darauf vertrauen, dass sie vertrauliche logik verarbeiten, sensible daten verarbeiten oder nur backend api aufrufe tätigen prozesse, die sie möglicherweise nicht direkt dem client aussetzen möchten alle cloud code für ihre back4app app wird innerhalb des parse servers ausgeführt, der von back4app verwaltet wird, sodass sie sich keine gedanken über serverwartung, skalierung oder bereitstellung machen müssen wann immer sie ihre main js datei aktualisieren und bereitstellen, wird der laufende parse server mit ihrem neuesten code aktualisiert main js dateistruktur eine typische main js könnte enthalten require anweisungen für alle benötigten module (npm pakete, integrierte node module oder andere cloud code dateien) cloud funktionsdefinitionen mit parse cloud define() trigger wie parse cloud beforesave() , parse cloud aftersave() , usw npm module die sie installiert haben (falls erforderlich) main js // main js // 1 import necessary modules and other cloud code files const axios = require('axios'); const report = require(' /reports'); // 2 define a custom cloud function parse cloud define('fetchexternaldata', async (request) => { const url = request params url; if (!url) { throw new error('url parameter is required'); } const response = await axios get(url); return response data; }); // 3 example of a beforesave trigger parse cloud beforesave('todo', (request) => { const todo = request object; if (!todo get('title')) { throw new error('todo must have a title'); } }); mit der möglichkeit, npm module zu installieren und zu verwenden, wird cloud code unglaublich flexibel, sodass sie mit externen apis integrieren, datenumwandlungen durchführen oder komplexe serverseitige logik ausführen können typische anwendungsfälle geschäftslogik zum beispiel, aggregierte daten für analysen oder berechnungen durchführen, bevor sie in der datenbank gespeichert werden datenvalidierungen sicherstellen, dass bestimmte felder vorhanden sind oder dass ein benutzer die richtigen berechtigungen hat, bevor ein datensatz gespeichert oder gelöscht wird trigger aktionen ausführen, wenn sich daten ändern (z b eine benachrichtigung senden, wenn ein benutzer sein profil aktualisiert) integrationen mit drittanbieter apis oder diensten verbinden sicherheitsdurchsetzung eingaben validieren und bereinigen, um die sicherheit vor der durchführung sensibler operationen zu gewährleisten setzen sie ihre funktion ein unten ist eine einfache cloud code funktion, die die länge eines von der clientseite gesendeten textstrings berechnet main js // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); bereitstellung über die back4app cli https //www back4app com/docs/local development/parse cli 1 installieren sie die cli für linux/macos curl https //raw\ githubusercontent com/back4app/parse cli/back4app/installer sh | sudo /bin/bash für windows laden sie die b4a exe https //github com/back4app/parse cli/releases/download/release 3 3 1/b4a exe datei von der veröffentlichungsseite herunter 2 konfigurieren sie ihren kontoschlüssel https //www back4app com/docs/local development/parse cli#f cxi b4a configure accountkey 3 stellen sie ihren cloud code bereit b4a deploy bereitstellung über das dashboard gehen sie im dashboard ihrer app zu cloud code > funktionen kopieren/einfügen sie die funktion in den main js editor klicken sie auf bereitstellen rufen sie ihre funktion auf von blazor aus mit dem parse net sdk somedataservice cs (calling function) public async task\<int?> gettextlengthasync(string text) { try { var result = await parsecloud callfunctionasync\<dictionary\<string, object>>("calculatetextlength", new dictionary\<string, object> { { "text", text } }); if(result != null && result containskey("length")) return convert toint32(result\["length"]); return null; } catch(exception ex) { console writeline("error calling cloud function " + ex message); return null; } } sie können es auch über rest oder graphql aufrufen, wie im reactjs tutorial gezeigt schritt 5 – konfigurieren der benutzerauthentifizierung benutzerauthentifizierung in back4app back4app nutzt die parse user klasse als grundlage für die authentifizierung standardmäßig kümmert sich parse um die passwort hashing, sitzungstoken und sichere speicherung das bedeutet, dass sie keine komplexen sicherheitsabläufe manuell einrichten müssen einrichten der benutzerauthentifizierung in einer blazor anwendung können sie einen neuen benutzer mit folgendem erstellen authservice cs using parse; using system threading tasks; public class authservice { public async task signupuserasync(string username, string password, string email) { var user = new parseuser() { username = username, password = password, email = email }; try { await user signupasync(); console writeline("user signed up successfully!"); } catch (exception ex) { console writeline("error signing up user " + ex message); } } public async task loginuserasync(string username, string password) { try { var user = await parseuser loginasync(username, password); console writeline("user logged in " + user username); } catch (exception ex) { console writeline("error logging in user " + ex message); } } } sitzungsverwaltung nach einem erfolgreichen login erstellt parse ein sitzungstoken , das im benutzerobjekt gespeichert wird in ihrer blazor app können sie auf den aktuell angemeldeten benutzer zugreifen somecomponent razor cs var currentuser = parseuser currentuser; if (currentuser != null) { console writeline("currently logged in user " + currentuser username); } else { console writeline("no user is logged in"); } parse verwaltet automatisch tokenbasierte sitzungen im hintergrund, aber sie können sie auch manuell verwalten oder widerrufen zum ausloggen authservice cs (logout) public async task logoutasync() { await parseuser logoutasync(); console writeline("user logged out"); } integration von sozialem login back4app und parse können mit beliebten oauth anbietern wie google oder facebook integriert werden die konfiguration kann variieren und umfasst oft serverseitige einstellungen oder zusätzliche pakete siehe die dokumentation zum sozialen login https //www back4app com/docs/platform/sign in with apple für detaillierte anweisungen da blazor server apps auf asp net core laufen, können sie den sozialen login mithilfe von asp net core identity anbietern zusammen mit parse für nahtlose authentifizierung integrieren e mail verifizierung und passwortzurücksetzung um die e mail verifizierung und die passwortzurücksetzung zu aktivieren navigieren sie zu den e mail einstellungen in ihrem back4app dashboard aktivieren sie die e mail verifizierung um sicherzustellen, dass neue benutzer den besitz ihrer e mail adressen verifizieren konfigurieren sie die absenderadresse , e mail vorlagen und ihre benutzerdefinierte domain, falls gewünscht diese funktionen verbessern die kontosicherheit und das benutzererlebnis, indem sie den besitz von e mails validieren und eine sichere methode zur wiederherstellung von passwörtern bereitstellen schritt 6 – dateispeicherung verwalten hochladen und abrufen von dateien parse enthält die parsefile klasse zum verwalten von datei uploads, die back4app sicher speichert fileservice cs using parse; using system; using system threading tasks; public class fileservice { public async task\<string> uploadimageasync(byte\[] filedata, string filename) { var parsefile = new parsefile(filename, filedata); try { await parsefile saveasync(); console writeline("file saved " + parsefile url); return parsefile url; } catch (exception ex) { console writeline("error uploading file " + ex message); return null; } } } um die datei an ein objekt anzuhängen fileservice cs (continued) public async task\<parseobject> createphotoobjectasync(byte\[] filedata, string filename) { var photo = new parseobject("photo"); var parsefile = new parsefile(filename, filedata); photo\["imagefile"] = parsefile; try { await photo saveasync(); return photo; } catch (exception ex) { console writeline("error creating photo object " + ex message); return null; } } abrufen der datei url somecomponent razor cs var imagefile = photo get\<parsefile>("imagefile"); var imageurl = imagefile url; sie können diese imageurl in ihren blazor komponenten anzeigen, indem sie sie als quelle eines \<img> tags festlegen dateisicherheit parse server bietet flexible konfigurationen zur verwaltung der dateiuploadsicherheit verwenden sie acls auf parsefiles oder setzen sie serverseitige konfigurationen nach bedarf schritt 7 – aufgaben mit cloud jobs planen cloud jobs cloud jobs in back4app ermöglichen es ihnen, routinemäßige aufgaben in ihrem backend zu planen und auszuführen wie das bereinigen alter daten oder das versenden einer täglichen zusammenfassungs e mail ein typischer cloud job könnte so aussehen main js parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); stellen sie ihren cloud code bereit mit dem neuen job (über cli oder das dashboard) gehen sie zum back4app dashboard > app einstellungen > servereinstellungen > hintergrundjobs planen sie den job, um täglich oder in einem anderen intervall, das ihren bedürfnissen entspricht, ausgeführt zu werden cloud jobs ermöglichen es ihnen, hintergrundwartung oder andere regelmäßige prozesse zu automatisieren, ohne manuelle eingriffe zu erfordern schritt 8 – integration von webhooks webhooks ermöglichen es ihrer back4app app, http anfragen an einen externen dienst zu senden, wann immer bestimmte ereignisse auftreten dies ist leistungsstark für die integration mit drittanbietersystemen wie zahlungs gateways, e mail marketing tools oder analyseplattformen navigieren sie zur webhooks konfiguration in ihrem back4app dashboard > mehr > webhooks und klicken sie dann auf webhook hinzufügen richten sie einen endpunkt ein (z b https //your external service com/webhook endpoint https //your external service com/webhook endpoint ) konfigurieren sie trigger um festzulegen, welche ereignisse in ihren back4app klassen oder cloud code funktionen den webhook auslösen wenn sie beispielsweise einen slack kanal benachrichtigen möchten, wann immer ein neues todo erstellt wird erstellen sie eine slack app, die eingehende webhooks akzeptiert kopieren sie die slack webhook url in ihrem back4app dashboard setzen sie den endpunkt auf diese slack url für das ereignis „neuer datensatz in der todo klasse “ sie können auch benutzerdefinierte http header oder payloads hinzufügen, wenn nötig sie können auch webhooks im cloud code definieren, indem sie benutzerdefinierte http anfragen in triggern wie beforesave, aftersave erstellen schritt 9 – erkundung des back4app admin panels die back4app admin app ist eine webbasierte verwaltungsoberfläche, die für nicht technische benutzer entwickelt wurde, um crud operationen durchzuführen und routinemäßige datenaufgaben ohne programmierung zu erledigen sie bietet eine modellzentrierte , benutzerfreundliche oberfläche, die die datenbankverwaltung, das benutzerdefinierte datenmanagement und betriebliche abläufe auf unternehmensebene optimiert aktivierung der admin app aktivieren sie es, indem sie zu app dashboard > mehr > admin app gehen und auf die schaltfläche „admin app aktivieren“ klicken erstellen sie einen ersten admin benutzer (benutzername/passwort), der automatisch eine neue rolle (b4aadminuser) und klassen (b4asetting, b4amenuitem und b4acustomfield) im schema ihrer app generiert wählen sie eine subdomain für den zugriff auf die admin oberfläche und schließen sie die einrichtung ab melden sie sich an mit den admin anmeldeinformationen, die sie erstellt haben, um auf ihr neues admin app dashboard zuzugreifen sobald die back4app admin app aktiviert ist, können sie ganz einfach datensätze aus ihrer datenbank anzeigen, bearbeiten oder entfernen, ohne direkt das parse dashboard oder backend code verwenden zu müssen fazit durch das befolgen dieses umfassenden tutorials haben sie einen sicheren backend für eine blazor app auf back4app erstellt eine datenbank konfiguriert mit klassenschemas, datentypen und beziehungen echtzeitabfragen integriert wo anwendbar für sofortige datenaktualisierungen sicherheitsmaßnahmen angewendet unter verwendung von acls und clps, um den datenzugriff zu schützen und zu verwalten cloud code funktionen implementiert, um benutzerdefinierte geschäftslogik auf der serverseite auszuführen benutzerauthentifizierung eingerichtet mit unterstützung für e mail bestätigung und passwortzurücksetzungen datei uploads verwaltet und abrufe, mit optionalen datei sicherheitskontrollen cloud jobs geplant für automatisierte hintergrundaufgaben webhooks verwendet um mit externen diensten zu integrieren das back4app admin panel erkundet für die datenverwaltung mit einem soliden blazor frontend und einem robusten back4app backend sind sie nun gut gerüstet, um funktionsreiche, skalierbare und sichere webanwendungen zu entwickeln setzen sie die erkundung fort, um fortgeschrittenere funktionen zu entdecken, integrieren sie ihre geschäftslogik und nutzen sie die leistungsfähigkeit von back4app, um ihnen unzählige stunden in der server und datenbankverwaltung zu sparen viel spaß beim programmieren! nächste schritte erstellen sie eine produktionsbereite blazor app indem sie dieses backend erweitern, um komplexere datenmodelle, caching strategien und leistungsoptimierungen zu handhaben integrieren sie fortgeschrittene funktionen wie spezialisierte authentifizierungsabläufe, rollenbasierte zugriffskontrolle oder externe apis überprüfen sie die offizielle dokumentation von back4app für tiefere einblicke in fortgeschrittene sicherheit, leistungsoptimierung und protokollanalyse erforschen sie andere tutorials zu echtzeit chat anwendungen, iot dashboards oder standortbasierten diensten kombinieren sie die hier gelernten techniken mit drittanbieter apis, um komplexe, reale anwendungen zu erstellen