Transkripte
1. KURSEINFÜHRUNG: Wenn wir Flutter Developer wären, dann
kennen Sie vielleicht Firebase. Firebase ist nicht die einzige
Option auf dem Markt. Es gibt einen anderen Konkurrenten , der eine sehr
gute Alternative darstellt, und er ist unter
dem Namen Superbus bekannt. Superbus wird von
Tag zu Tag
beliebter und er erhält eine gute
Resonanz von der Community. Das beste
Merkmal ist der Open-Source-Charakter
und das Preismodell. Start von Supply Base ist kostenlos
und das kostenpflichtige Abo-Diagramm eine monatliche Pauschalgebühr für unbegrenzte Nutzung,
anstatt nach Bedarf zu zahlen, was auf lange Sicht sehr kostspielig
sein kann. Dieser Kurs richtet sich
an Anfänger. Wir werden zunächst
ein neues Supervisor-Projekt einrichten. Anschließend lernen wir, wie Sie die Anzeige mithilfe von
E-Mail und Passwort
zulassen und die Google-Anmeldung implementieren. Danach werden wir uns mit den
Datenbank-Crud-Operationen befassen. Wir werden uns auch
Datenbankänderungen in
Echtzeit über Streams anhören . dann mit dem Konzept
der Sicherheit auf Zeilenebene vertraut und erfahren Sie, wie Sie Richtlinien schreiben
, um unsere App zu sichern. Und schließlich habe ich gelernt, Dateien in diesen Speicher
hochzuladen und zu löschen. Am Ende des Kurses werden
Sie in der Lage sein, mit
all diesen Konzepten
Ihr eigenes Traum-Startup aufzubauen mit
all diesen Konzepten
Ihr eigenes Traum-Startup ,
und wer weiß, es kann das nächste große
Ding in der Technologiebranche sein. Also, ohne noch mehr
Diamanten zu verschwenden, fangen wir an.
2. Warum Supabase verwenden: Hallo, willkommen zum
allerersten Video des Kurses, in dem
wir lernen, wie
man überwachte Datenbanken
mit Clutter-Technologie verwendet. Also, was ist Superbus? Superbus ist eine leistungsstarke
Open-Source-Back-End-Plattform
in Echtzeit, mit der Web- und einfach erstellt und Mobilanwendungen einfach erstellt und
skaliert werden können. To biowaste basiert auf
Postgres Sequel,
einer leistungsstarken SQL-Datenbank, die es
einfach macht , mit
komplexen Datenstrukturen
und Beziehungen zu arbeiten . Es verfügt auch über eine integrierte
Unterstützung für Authentifizierung, Autorisierung,
serverseitige Logik und Speicher. Wildfire, das
es schon seit geraumer Zeit gibt und über eine
Vielzahl von Funktionen verfügt. Barbies ist also ein relativ
neuer Akteur auf dem Markt, jedoch aufgrund
seines Open-Source-Charakters bei Entwicklern schnell an
Beliebtheit gewinnt aufgrund
seines Open-Source-Charakters bei Entwicklern schnell an
Beliebtheit . Es verfügt über integrierte leistungsstarke
Funktionen und ist flexibel. Mit Superbus haben Sie die vollständige Kontrolle
über Ihre Daten und Infrastruktur und können den Service
an Ihre Bedürfnisse
anpassen. In diesem Kurs
konzentrieren wir uns darauf, Schritt für
Schritt
mehr über Authentifizierung,
Datenbank,
Sicherheit auf Zeilenebene und
Speicher zu lernen ,
Datenbank,
Sicherheit auf Zeilenebene und . Aber bevor wir dorthin übergehen, lassen Sie uns einige
Punkte besprechen, warum wir Supervise gegenüber Firebase
wählen sollten . Der erste Punkt ist SQL-
und NoSQL-Datenbanken. Postgres-Folgedatenbanken
sind besonders leistungsfähig, wenn es um
komplexe Abfragen,
Verknüpfungen und Filterung geht . Weil Daten
in Tabellen organisiert sind, Definierte
Beziehungen. In Supervise können Sie den Befehl join
verwenden, um Daten aus
mehreren Tabellen zu
kombinieren , in denen Sie verwandte
Daten in einer einzigen Abfrage abrufen möchten . Sie können Kommentare auch filtern
und sortieren, z. B. where und orderBy, um
bestimmte Teilmengen von Daten abzurufen. Im Gegensatz dazu kann das
Tragen von Daten in
NoSQL-Datenbanken wie Fire Basis schwieriger und weniger effizient sein. Firebase-NoSQL-Modell bietet nicht die gleiche integrierte Unterstützung für komplexe Abfragen,
Verknüpfungen und Filterung. Daher müssen Sie möglicherweise
Daten aus mehreren Dokumenten abrufen und diese
Abfragen dann auf der Clientseite durchführen. Ein zweiter wichtiger Unterschied
ist das Preismodell. Beide sind
für Anfänger kostenlos. Das heißt, Sie können kostenlos
loslegen. Superbus-Preismodell ist jedoch
flexibler und
kostengünstiger als Firebase. Überwachen. Bezahlte Tarifgebühren, eine monatliche Pauschalgebühr
für eine unbegrenzte Anzahl von Benutzern, während Firebase die Gebühren
je nach Benutzern und
für mehr Benutzer höhere Kosten anfallen. Langfristig steigt die
jährliche Nutzung, wenn Ihre Anwendung wächst. Der dritte Punkt ist dann der Import bereits vorhandener
Daten. Wir würden sagen allgegenwärtig. Wir können ganz einfach eine CSV-Datei importieren oder eine Tabelle
kopieren und einfügen
, um das Projekt zu starten. Das ist großartig, wenn
wir Daten
von einer anderen Plattform
auf Superbugs migrieren . Firebase bietet keine
integrierten Dienste denen wir Massendaten direkt
hochladen können. Möglicherweise haben Sie einige Pakete
von Drittanbietern, ich weiß nicht, aber
sie sind nicht eingebaut. Der nächste Punkt ist Self-Hosting. Viele Entwickler
möchten möglicherweise eine selbst gehostete App. Warten Sie auf
Sicherheitsgründe oder Skalierbarkeit. Wenn es um Self-Hosting geht, ist es laut
Dan einfach. Firebase erlaubt uns nicht
zu verkaufen, hat unsere App gezwungen. Nun, super Geschäft, wir haben Self-Hosting
ist wichtig für dich. Dann ist Superbus
die bessere Option. Dann. Der letzte Punkt ist
kein Vendor-Lock-In. Wenn Sie einen
cloudbasierten Dienst verwenden, ist
es wichtig, das
Potenzial einer Anbieterbindung zu berücksichtigen . Lieferantenbindung tritt auf,
wenn Sie von einem bestimmten
Anbieter, Forest Service,
abhängig werden ,
was es schwierig oder
kostspielig macht, was es schwierig oder
kostspielig macht zu einem
anderen Anbieter zu wechseln. Bobby's gibt uns also die Freiheit ,
jederzeit ohne zusätzliche Kosten zu einem anderen Anbieter zu wechseln . Dies ist jedoch bei Firebase nicht der
Fall. Wir stecken für immer auf der
Google-Plattform fest. Also entweder dürfen wir von
Anfang
an selbst hosten, oder nehmen wir an, Sie
fangen mit Superbus an, aber später wollte ich
die Plattform ändern , die auch in Superbase
erlaubt ist. Aus diesen Gründen glaube
ich auch, dass Superbus
benutzerfreundlicher ist oder eher für
Leute
geeignet ist , die nicht riskieren möchten, die Firebase-Datenbank zu
übernehmen und eine riesige Rechnung für
Code oder einen
Fehler in ihrer App zu
erhalten . Denn da es in
Firebase
keine Pauschalgebühren gibt,
können Ihre Ausgaben exponentiell steigen. Das ist es also. Ohne weitere
Zeit mit dem theoretischen Teil zu verschwenden. Machen wir uns die Hände
schmutzig und wir werden im nächsten Video mit der Arbeit an unserer
Flatter-App
beginnen. Danke.
3. Ein neues Projekt erstellen: Jetzt ist es an der Zeit, dass wir
loslegen und ein
neues Flatter-Projekt erstellen. Und ich gehe davon aus, dass
Sie das Flutter
SDK bereits in Ihrem System
installiert haben . Gehen Sie zu Ihrem bevorzugten
Ordner und schreiben Sie diesen Befehl, um ein neues Projekt zu
erstellen. Erstelle Superbus. Das werde ich, ich werde den Ordner so nennen. Du kannst es nennen,
wie du willst. Gehen wir rein. Es wird nur ein paar Sekunden dauern. Okay? Jetzt
ist unser Projekt erfolgreich erstellt. Ich werde einfach schreiben, ich werde zuerst zu Flutter gehen. Das ist das zusammengeklappt. Schreiben Sie dann den
Befehlscodebereich um diesen Ordner in
unserem VS-Code-Editor zu öffnen. Sie können hier sehen, dass wir all
diese Dateien und Ordner haben. Jetzt ist es soweit. Wir erstellen ein neues
Superbus-Konto und verwenden diese Einstellungen
dann in unserem Flatter-Projekt
, um es zu verbinden. Gehen Sie einfach so zu supervise.com und
melden Sie sich
mit Ihrem Konto an. Ich habe mich bereits angemeldet. Jetzt können Sie hier sehen,
dass ich kein Projekt habe. Also müssen wir zuerst ein neues Projekt
erstellen. Es wird Ihre Organisation sagen. Wenn Sie sich also anmelden, können
Sie auch eine
Organisation erstellen. Ich werde den
Projektnamen als Flutter, Super Base aufschreiben. Verwenden Sie ein beliebiges Passwort. Ich werde einfach schreiben, ein Passwort
generieren. Das war's. Wählen Sie dann das Studium aus und
welches Ihnen am nächsten ist. Ich werde einfach diesen wählen. Und ich werde damit beginnen, dass der
Preisplan kostenlos ist. Okay, jetzt, neues Projekt erstellen. Nachdem Sie das Projekt erstellt haben, dauert
es zwei bis 3
s, wie Sie sehen können, bis
eine Datenbank erstellt ist, und wir
erhalten unsere API-Informationen. Hier können Sie also sehen, dass ich auch
die API-Schlüssel und die URL habe. Und Sie können die gleichen API-Details auch in
diesem Abschnitt abrufen. Das ist
später die Seite mit den Einstellungen, wenn Sie möchten, und gehen Sie zu dieser API
in der Seitenleiste. Dieser. Jetzt werden wir diesen API-Schlüssel
in der Flutter-App verwenden. Und dafür werde ich eine Abhängigkeit
verwenden. Geh einfach hier in die Kneipe Dev, gleich zuerst, Superbus flutter. Dies ist die Abhängigkeit, die
ich verwenden werde, um mich mit dw zu verbinden und sie zu kopieren. Gehe zu deinem Ordner und dann Pub spec dot YAML. Und ich werde es hier einfügen. Drücken Sie die Eingabetaste. Das nächste Paket, das ich möchte,
heißt dot ENV. Dieses Paket wird verwendet, damit
unsere Passwörter sensibel sind. Informationen
werden nicht kompromittiert , da es nicht
ratsam ist, direkt in die Benutzeroberfläche zu schreiben. Kopieren Sie es einfach und
fügen Sie es ein. Das war's. Jetzt sind diese beiden
Pakete installiert. Um das Punkt-ENV-Paket
im Stammordner zu verwenden, müssen
wir eine Datei mit
nur der Erweiterung Punkt
ENV erstellen . Vorname. Hier werden wir
unsere Referenzen schreiben. Ich nenne es super base, URL ist gleich. Und zweitens hervorragende Möglichkeiten. K ist gleich. Gehen wir noch einmal zu Ihrem
Dashboard. Sie haben diese URL hier, kopieren Sie sie und fügen Sie
sie in die URL ein. Dann nochmal, geh und sieh nach, hier hast
du öffentlich und keinen Schlüssel. Kopieren Sie es einfach und
fügen Sie es in diesen Schlüssel ein. Das war's. Schließe einfach die Punkte
ENV, wenn du es nicht willst. Schon wieder. Um sicherzustellen, dass unsere Anwendung auf diese ENV-Punkt-Datei
zugreifen kann. Sie müssen
es in den Vermögenswerten erwähnen. Das ist geh zu Pub Spec Dot YAML. Und unten hier in
der Zeile 65
können Sie sehen, dass es kommentiert wird. Einfach zuerst unkommentierte
entfernen. Hier. Auch hier ungewöhnlich
der erste. Und rechter Punkt ENV. Und denken Sie immer daran, dass diese
Pub-Spezifikations-Punkt-YAML-Datei sehr sensibel ist. Wenn Sie hier und da Tabulatoren oder Leerzeichen
haben, wird ein Fehler ausgegeben. Das ist also auch erledigt. Jetzt ist es an der Zeit, dass wir unsere App
initialisieren. Gehen Sie also zu Glied und Hauptpunkt. Und wir müssen
den Superbus-Client in
unserer Hauptfunktion mit
den API-Anmeldeinformationen initialisieren unserer Hauptfunktion mit , die
Sie zuvor kopiert haben. Das heißt, Sie haben
in diesem Punkt die ENV-Datei erwähnt. Erstens, ja, das
Superbasispaket hier importieren. Also importiere Punkt e. Und wir haben das gemacht, nicht ENV Schrägbuchstabe
Punkt ENV, so. In der Hauptfunktion. Sorgt dafür, dass du es
zu einem Waschbecken machst. Dann musst du diese starren
Kommentare schreiben. Florida-Bindung. Stellen Sie die
Initialisierung sicher, um sicherzustellen, dass alles initialisiert
ist. Als erstes
müssen wir ENV laden. Diese warten auf die Punkt-ENV-Punktladung. Dies ist der Befehl, der von diesem Paket
gegeben wird. Dann müssen wir die Suppe immer
initialisieren. Einfach zuerst
erhalte ich die Superbasis-URL, das ist Punkt ENV, dann ENV. Und hier füge ich den
Schlüssel hinzu, der so eine Basis-URL ist. Und wenn es null ist, benutze
einfach diese leere Zeichenfolge. Und URL ist Kapital. Diese Dinge werden zu Fehlern führen. Dann füge ich es ein und ich füge
die oben genannten Variablennamen hinzu, was der Schlüssel ist. Und das wird der Schlüssel sein. danach einfach
auf Superbase und initialisieren Sie es
nicht außer cURL. Das haben wir. Und das auch bei
wichtigen Rehabilitationsmaßnahmen. Oh, okay. Wir haben diese Dinge. Es ist Zeit. Wir strukturieren
unser Projekt in Ordner. Anstatt alles
in diese Hauptpunktdatei zu schreiben, gehen Sie
einfach ins Labor, erstellen Sie einen Ordner
und nennen Sie ihn Seiten. Darin erstellen Sie zwei weitere Seiten. Es dient zum Verschieben von
Punktdateien Startseite
Punkt, Punkt und Startseite Punkt, Punkt. So wie das. Auf der Homepage. Importieren Sie einfach das Material. Dann blieb ich weniger starr. Und Homepage. Ich habe dieses Rigid
innerhalb von Sekunden erstellt , indem ich hier
einige Erweiterungen verwendet habe. Sie können
diese Erweiterungen also auch hinzufügen. Ja, ich drehe wirklich Gap für den Körper,
dann Const Center. Kind. Schreiben Sie einfach die Startseite. Wir werden diese
Dinge natürlich später ändern. Also denke ich nur,
warum ist diese Zeile hier? Okay, lassen wir es noch einmal. Gehe zu Startseiten-Import, meine TTL, dann Datum weniger starr. Nennen Sie es Start. Dann zurück, Gerüst, dann
Körper, dann Mitte. Ich werde vorerst wieder einfach
den Seitennamen schreiben. Es ist Dark Page. Das ist kein Wort, oder? Okay. Aber später
müssen wir diese Konstante natürlich entfernen. Und jetzt wollen wir sehen, was in den späteren Videos
passiert. Jetzt ist hier alles erledigt. Im nächsten Video werden wir am
Authentifizierungsteil und den Seiten arbeiten . Das heißt, ich sehe mir
das nächste Video an.
4. Einrichtung von Auth Screen: Hallo. Jetzt ist es an der Zeit, dass wir etwas über die
Benutzerauthentifizierung in Superbus lernen . Gehe zur
Hauptpunktdatei und entferne alles darunter, meine App. Lass es uns entfernen. Ich werde
diese Kommentare auch entfernen ,
damit es sauber aussieht. Erstellen Sie nun ein neues
Stateful-Widget und benennen Sie es. Das ist mit Based for Rigid und nenne es Kunst. Okay. Auf dieser Kunstseite zeigen
wir nun den Benutzer an oder leiten ihn
zur Umleitung weiter,
je nachdem, ob der Benutzer je nachdem, ob der Benutzer bereits authentifiziert
ist oder nicht. Das heißt, wir überprüfen
nur, ob sich ein Benutzer bereits zuvor angemeldet
hat
oder ob es sich um einen neuen Benutzer handelt. Also das
werde ich hier tun. Zunächst werde ich
eine Super-Basisinstanz erstellen. Es ist ein blindes Beispiel. Nehmen wir an, Always
Supervise ist gleich Superhighways Dot
Instance Client. So nennen wir Funktionen, die von Superbus
bereitgestellt werden. Danach. Also Lieferungen, Geschenke, unsere
Renditen als Nutzer. Ich werde nur
diese Benutzervariable haben. Denkt daran, das
kommt von Superbus. Ich werde das später
einfach diesem Benutzer zuweisen. Und jetzt werde ich hier einfach
überprüfen, ob der Benutzer gleich Null ist. Dann erstelle ich
diese Seite, die Dark Page
ist. Ich habe diese Seite. Denken Sie daran im letzten
Video oder auf der Homepage. Es ist ganz einfach. Ist es. Wenn der Benutzer bereits dort ist, melden
Sie sich direkt an, melden Sie ihn auf der Homepage an,
sonst wird er aufgefordert, sich anzumelden. Hier. Machen Sie diese Seite zur Startseite. Und jetzt unser
Materiallabor. Das ist erledigt. Jetzt. Was wir tun werden,
sind tolle Möglichkeiten, Geschenke, so wenige Funktionen wie möglich
zu bekommen, das heißt, in den Nutzer zu kommen. Das ist der Befehl. Also Bobbys Punkt,
Punkt ist in den Benutzer geraten. So nett. Befehl gibt ein Benutzerobjekt zurück. Okay, so einfach ist das. Lassen Sie uns nun die
zukünftige Funktion erstellen. Offensichtlich. Es wird ein paar Sekunden
dauern. Deshalb hat dieser Name Kunst
bekommen. Ein Waschbecken. Ich hoffe, Sie wissen, dass all
dieses grundlegende Konzept diese Zukunft genannt wird. Und weil diese für diesen Kurs
erforderlich sind. Hier werde ich
einfach angeben, dass dies diese
Benutzervariable für diesen Befehl ist, es ist User dot,
dot, current user. Und hier kannst du sehen,
das gibt uns diesen Benutzer. Wenn Sie den Mauszeiger darüber
bewegen, erhalten wir diesen Benutzer, er kann sowohl Null
als auch einen Wert haben. Und danach wollen wir zuhören. Das liegt an unserem Staatswandel. Das heißt einfach, wenn sich der
Benutzerstatus ändert, das heißt, sich
der Benutzer abmeldet
oder anmeldet, wird
unsere Seite neu geladen. Das heißt, es könnte erneut an die Homepage
oder die Startseite gesendet werden. Hier. Und hier. Sollen wir zuhören. Das ist die Veranstaltung. Und jetzt werden wir hier den Zustand festlegen
erwähnen. User ist ein Aufruf an event
dot session dot user, und dieser kann auch Null sein. Also, wenn es keins von beiden ist, dann weisen Sie einfach
den Nullwert zu. Wenn du darüber schwebst. Siehst du, das ist Gaming
als dieser Benutzer. Bedeutet also einfach, den aktuellen Benutzer zu
bekommen. Sie können entweder unsere
Dunkelstrom-Benutzerfunktion verwenden. Es gibt auch diese Funktion. Diese Sitzung. In der Sitzung können Sie die Benutzerdetails
abrufen. Okay? Jetzt
rufe ich diese Funktion
im Init-Zustand auf. heißt, wenn dieser Bildschirm gerendert
wird , müssen Sie, er,
diese Funktion als Erstes aufrufen. Danach wird der Bildschirm
entsprechend
dem Benutzerwert zurückgegeben. Also haben wir das Ding
bereit. Es ist Zeit. Wir führen die Anwendung aus. Und ich werde
es auch einfach in den Namen
Florida Superbus ändern . Und ich habe die Homepage gerade
so wie diese Kunst. Okay, lass uns das später
konstant machen. Wenn wir es wünschen,
werde ich es ändern. Und ich werde auch diese
Debug-Binärdatei entfernen. Jetzt führen Sie diese Anwendung aus. Sie können ein virtuelles Gerät verwenden, sind auch Ihr physisches Gerät. Sie können eine Verbindung über ein
USB-Kabel herstellen und das Debuggen und
Debuggen auf Ihrem Mobilgerät aktivieren . Aber ich werde
einfach den Emulator verwenden. Geh hoch und Android Studio hier mehr Aktionen als
Virtual Device Manager. Ich habe dieses Gerät bereits erstellt, aber Sie können von hier aus ein
neues Gerät erstellen. Und siehe, ich verwende Pixel
für API 30 und lese 11. Wir fangen einfach hier an. Wenn Ihr System nicht leistungsstark ist, wird Android Studio es
meiner Meinung nach langsamer
machen oder die
Arktis wird hinterherhinken. Jetzt hast du dein Gerät hier. Und Sie können in diesem VS-Code sehen, mein Gerät jetzt aktiv ist. Ich werde einfach laufen und
mit dem Debuggen beginnen. Zeit. Es dauert einige Zeit. Also musst du warten
und Patienten haben. Ich möchte nur sagen,
nehmen wir an, Sie möchten
mehr über Authentifizierung,
Funktionen und Terminologien erfahren , dann können Sie die
offizielle Seite von Supervise besuchen. Hier
erfahren Sie mehr über die aktuellen
Benutzersitzungen und alles. Aber hauptsächlich gibt es wenige Dinge, nur wenige Keywords und ich finde,
es ist ein sehr einfaches Englisch. Es sollte also nicht so
schwer sein, sich daran zu erinnern. Es dauert einige Zeit, aber ich denke, wir müssen warten. Es gibt keine andere Option. Und sieh. Ich habe diese Warnung. Es ist nicht so, dass die App nicht läuft, aber ich habe
hier diese Warnung, die Compiler SDK-Version zu ändern. Also werde ich dir zeigen
, wie das gemacht wird. Aber wenn Sie
diese roten Linien nicht sehen, ist das in Ordnung. Aber in meinem System habe ich das Upgrade durchgeführt. Aber wie Sie sehen können,
wurde es erfolgreich gebaut. Ich weiß, dass es viel Zeit gedauert hat. Ich hoffe, Ihr System
braucht diese Zeit nicht. Mal sehen, was als Start oder Home
gerendert wird. Siehst du, wir haben diese
dritte Seite hier. Also die App ist dann
erfolgreich , das heißt, dass Superbus
auch verbunden ist und es
ist kein Add drin. Und ich werde dir auch nur sagen, wie
du das lösen kannst. Schliessen. Ich beende nur
die Anwendung. Dann. Gehen Sie zum Android-Ordner, dann zur App und dann zum Aufbau der
Gradle-Datei. Hier. Sie werden den Basiswert 29 sehen. Diese kompilierte SDK-Version. SDK-Version nicht kompilieren. Ich werde einfach das
Flattern entfernen und richtig, 33. Das war's. Und speichern Sie es. Und jetzt machen Sie
es einfach noch einmal, bis
sie mit dem Debuggen beginnen. Und ich hoffe, Sie werden hier
keine roten Linien oder
Warnungen sehen . Ich möchte nicht noch einmal
warten, bis diese
Anwendung ausgeführt wird. Wir sehen uns also im nächsten Video.
5. Arbeiten an StartPage UI: Hallo, willkommen zurück. Sie können also in der
Debug-Konsole sehen, dass es
nach der Änderung keine Warnungen gibt Der Compiler hat
die SDK-Version veraltet. Es ist Zeit, dass wir an
der Benutzeroberfläche der Startseite arbeiten. dieser Seite
kann sich der Benutzer anmelden und registrieren. Das erste, was wir tun müssen, ist es zu einer staatlichen Vollversion zu machen. Weil wir natürlich mit vielen Staaten
zusammenarbeiten werden. Und fangen wir an, unsere Staaten zu
schreiben. Die erste Sache ist diese
Superways-Client-Instanz. Also Bobbys
Dotinstance-Dot-Client. Als Nächstes haben wir den
booleschen Wert von E der sagt, dass er beim Laden zum ersten Mal falsch
sein wird. Und eine andere ist, ist nicht,
ist, dass ich einfach sign-up
load loading schreibe, so, sign in loading, und hier
wird signup loading sein. Das ist auch falsch. Dann melden Sie sich an und registrieren Sie
sich für Steuerwale
, die ich habe. Dieser Textbearbeitungscontroller
ist das Konzept von Flutter. Und natürlich wird das
Passwort per E-Mail auch da
sein. Buscontroller entspricht
x Everything Controller. Dann verwenden wir das
Formular-Widget, das wir benötigen. Ein Schlüssel. Das ist nur Syntax. Sie müssen bedenken, dass diese niedrigen, voluminöseren Formen
die Null angeben. Und ich werde immer daran denken, die Staaten zu entsorgen, die nicht alle
sind, hauptsächlich
Zweckinstanzen. Und das Bearbeiten der Decks
und die Limonade, es gibt kein Speicherleck. K, nein, geh runter. Und er hatte am Körper, ich
werde dieses Zentrum haben. Aber bei diesem Kind hat
das Kind
die Form Vision und die Bombe hat die Spalten k, c. Und ein Jahr ist ein
obligatorischer Wert für K G, N hier, denn
lasst uns das überprüfen. Ja, Foley ist da, okay. Konstanten sollten nicht da
sein. Das war's. Das war das Problem hier. Sollte es nicht konstant sein. Nein. Wir werden diese Eigenschaften
der Spalte verwenden , bei der es sich um das
Haupt-Exist-Alignment handelt, also um das
Alignment-Rechenzentrum. Kreuz x steht für Land, Bruttoüberschuss als
Mittelpunkt und nicht zentriert. Das werde ich ja, du dehnst dich. Und ich werde dieses Formular verpacken. Welches einzelne Kind? Ansicht scrollen. Beim Tippen ist kein Fehler aufgetreten. Das heißt, wenn wir
eine E-Mail eingeben, wird kein Passwort hinzugefügt. das UI sage, habe ich nur den Adder vergessen, aber wenn du
das Single-Channel-Scrolling
entfernst , bekommst du das. Lass es mich dir später zeigen. Nach diesem Forum. In dieser Kolumne werde ich
einige Erläuterungen dazu geben . Als Erstes erhalte ich
immer ein Netzwerk-Image. Gehen Sie einfach zu Google Images
und servieren Sie das Superbus-Logosymbol. Ich werde einfach das Bild öffnen. Hier. Sind der Klebstoff. Lass uns das Bild kopieren und schauen, ob es Punkt-PNG ist oder nicht. Wissen. Dies könnte
einige geben, da Sie kein Bild mit dieser Erweiterung haben
sollten. Lassen Sie uns diese
Bildadresse und Basis kopieren. Das ist mein Bild. Öffne einfach dasselbe Bild. Und jetzt wie die Bildadresse kopieren. Wenn ich es jetzt einfüge, sehe ich, dass es diese
Erweiterung hat als PNG. Und ich habe wirklich gegeben. Hohe Höhe von 150. Speichern Sie es. Sie haben eine App, die läuft. Ich weiß nicht, was Stat Edit ist. Ok, es gibt ein Problem. Es ist ein solides Bild
, dass das Netzwerk da ist. glaube ich nicht. Es sollte ein Fehler auftreten, aber ich habe gerade neu gestartet. Schon wieder. Ich
ändere einfach das Bild. Wir werden Daten bekommen und wieder werden
wir dieses Bild verwenden. B-Dur-Kleid. Das ist so lustig, dass man
sich kein Bild machen kann. Mann. Und mal sehen, lass uns ein paar andere Sachen
benutzen. Ich werde einfach ein paar andere
Widgets und später Gene geben, dieses Bild, E-Mail-Feld, Passwort, Freund. Das nächste Feld. Und ich werde einfach ein Kästchen in der
Größe verwenden und ihnen den Abstand geben. Und erhöhte Taste. Ich habe mich angemeldet. Lass uns sehen. Sind hier welche hinzugefügt? Ich werde es einfach beenden
und es erneut ausführen. Wir haben diese Ausgabe hier. Das Logo, zwei Textfelder,
eine beliebige Anmeldeschaltfläche. Ich werde hier auch einen
Anmelde-Button haben und ich werde einfach Divider verwenden. Sei konstant. Dann. Geben Sie einfach eine
Gliederungsschaltfläche und melden Sie sich für die Kindererziehung an. Das war's. Wir haben also das Gerüst und Mittelbettwäsche ist da. Okay. Lassen Sie uns nun das
Textformular für das E-Mail-Feld so gestalten, dass es übereinstimmt. Ich werde den Validator verwenden ,
damit wir sicherstellen,
dass er nicht eingereicht wird. Leer. Der Wert ist gleich Null. Der Wertpunkt ist leer. Wir kommen einfach
zurück, ist erforderlich. Oder, wenn alles
gut ist, gib einfach null zurück. Das heißt, es liegt kein
Überprüfungsfehler vor. Dann haben wir den Controller
als E-Mail-Controller. Deklaration. Und Dekoration aufstellen. Bezeichnung entspricht E-Mail und Tastatur Typ X,
Eingabetyp Punkt, E-Mail-Adresse. Gehen Sie jetzt zum Bus für
das Passwortfeld. Wir haben jetzt einen Validator. Wenn der Wert gleich Null ist und wenn der Wert leer ist, ist eine Rückgabe erforderlich. Rl. Also dreh den Controller, wir haben eine verwirbelte
Controller-Dekoration. Dekoration, Limit
entspricht Text, Schwert und Obskurve. X ist gleich wahr. Das heißt, der Benutzer sollte nicht
sehen, was er tippt. Jetzt speichere es. Schauen Sie sich unsere App an und sehen Sie
, dass sie anständig aussieht. Offensichtlich ist dies
kein UI-Kurs. Unser Fokus liegt darauf, den Superbus zu
lernen. In ihnen. Im nächsten Video werden wir lernen, wie man Anmelde- oder
Anmeldefunktionen
implementiert. Und Q.
6. Implementierung von Signup und Signin: Hallo, wir haben also unsere Benutzeroberfläche bereit. Jetzt ist es an der Zeit, dass wir
dieses Zeichen der Funktionalität implementieren. Diese
Superbus-Instanz hat also Kunst, wie Sie hier gesehen haben, die sich im main.out
befindet. Die
Funktion zur Partnerregistrierung. Die Syntax ist wie die Syntax. Super Wege nichts,
Kunst, kein Anmelden. Und hier müssen wir
E-Mail und Passwort senden. Das war's. Dies ist der erforderliche
Listenindex. Und es wird uns sowohl die
Sitzung als auch den Benutzer zurückgeben. Um dies zu implementieren, ist
unser Anmelde-Button hier. Zuallererst
überprüfe ich, ob dies die
Anmeldung ist, die geladen wird . Ist da, dann die
riesige kreisförmige
Fortschrittsanzeige von Const Center . Das ist also die
Fortschrittsanzeige oder sonst Lass uns
zum On Press gehen und
dieses Kind zu Konstanten machen. Jetzt müssen wir als Erstes überprüfen, ob
das Formular gültig ist. Dies ist gültig und entspricht dem aktuellen Zustand des
Bomben-Qi-Punkts. Verweile nicht darin. Als erstes müssen wir
überprüfen, ob es gültig ist oder nicht. Und wenn ja, wenn es nicht korrekt ist, dann weisen Sie einfach den Wert Null zu. Jetzt haben wir eine If-Aussage. Wenn gültig, nicht gleich wahr, dann
kehren wir einfach von hier zurück. Sonst
schicken wir den State DOT. Das Laden der Anmeldung ist wahr. Ja, wir werden
eine Ladeanzeige zeigen. Dann wickeln wir
alles hinein, ein Try-Catch-Block. Lassen Sie uns jetzt
seltsame Supermethoden ausprobieren. Punkt, Punkt, melde dich so an. Und hier für die
E-Mail müssen wir E-Mail-Controller
schreiben, keinen Text. Und für das Passwort den Passwort-Controller-Knotentext . Und danach gehen wir nur noch zum Boten, zur Snackbar. Erfolg. Für die Automatisierung. E-Mail gesendet, Hintergrundfarbe,
Farben, dunkelgrün. Und das kann konstant sein. Und ich schätze, das erwartet Sie. Wir haben Domain-Tage
an Press Sync. Danach senden wir uns Daten. Das Laden der Anmeldung
entspricht falsch. Das war's. Was ist nun, wenn zusätzlich diese sorgfältigen
Nachrichten hinzugefügt werden, die
keine Kontexte enthalten, die
Imbissbars mit Nachteilen belegen. Snackbar x werden
wir uns nicht anmelden können? Keine Hintergrundfarbe. Die Farbe ist rot. A und wir müssen wieder destiniert auf false
setzen, das heißt anmelden. Laden ist gleich falsch. Also hier
versuchen wir zuerst, meine Zeit,
die
uns von Superbus gegeben wurde, zu registrieren . Und dann
zeigen wir die Snackbar. Wenn es bestätigt ist oder wenn ja, wenn etwas hinzugefügt wurde, dann
zeigen wir auch die Snackbar. Denken Sie daran, dass Superbus standardmäßig E-Mail-Überprüfung
aktiviert die E-Mail-Überprüfung
aktiviert. Wenn Sie die
Superbus-Authentifizierung verwenden und
diese Einstellungen aktiviert sind, müssen
Ihre Benutzer
ihre E-Mail-Adresse überprüfen , damit die Konten
aktiv werden. Sie können es
auch deaktivieren, indem Sie im
Authentifizierungsbereich zur Option Einstellungen wechseln. Jetzt haben wir diese
Anmeldemethode, kehren Sie einfach zurück, lassen Sie uns auch
diese Anmeldung schreiben. Und danach werden wir es erklären. Ähnlich. Für die Anmeldefunktion. Das ist der Basics-Index
, der super Wege ist,
keine Kunst, kein schwaches
Passwort wie dieses. Aber das ist dieser Index. Hier müssen wir eine E-Mail
und ein Passwort angeben. Das ist eine Syntax. Unsere Anmeldung. Lass es uns machen. Lassen Sie uns diesen
erhöhten Knopf hier haben. Ja. Lass es sinken. Das ist die Anmeldeschaltfläche. Nach dem Netz. Vieles wird
ähnlich sein, als erstes werden
wir überprüfen, ob das
Laden der Anmeldung stimmt. Dann const center child. Cool. Fortschrittsindikator. Und danach kaufen wir
gerne eine Ligase. Nochmals, kopiere auch. Warum Zeit verschwenden. Von hier nach hier. Lass uns alles kopieren. hier drinnen geblieben. Und jetzt lass uns sehen, alles
überprüfen. Es wird sagen. Und beim Laden. In ähnlicher Weise
wird dies die Unterzeichnung, die Anmeldung sein. Dann wird das, sagen wir,
im Gewicht sein . Andere Dinge. Also sagen wir und wir benötigen das
nicht, da es direkt auf die
Homepage geht. Aber hier
müssen wir uns nur anmelden. Und das war's. Das ist also erledigt und
ich hoffe, es wird funktionieren. Wir haben sowohl die Anmeldung
als auch die Funktionalität erfolgreich
geschrieben . Im nächsten Video
werden wir nun die Funktionsweise
dieser Funktionen und
auch das Design testen . Danke.
7. Funktionalität auszeichnen: Hallo, es ist Zeit, dass wir
die Funktionalität testen. Schreiben wir eine E-Mail und das Passwort 12345 und
klicken Sie auf Anmelden. Siehe Erfolgs-E-Mail,
Bestätigungscent. Jetzt müssen wir zu
dieser Google Mail-Adresse gehen und auf Bestätigung
klicken. Lass uns Gmail n. Wenn du zum
Authentifizierungsbereich gehst und neu lädst. Siehst du, wir haben diese E-Mail hier und sie ist
zur Bestätigung geschrieben. Und hier
müssen Sie einfach auf die Z-Disc klicken und Ihre E-Mail
bestätigen. Und jetzt wird es nichts tun. Wenn wir jedoch den
Authentifizierungsabschnitt neu laden, stellen
Sie sicher, dass die Überprüfung abgeschlossen
ist. Wenn wir jetzt gehen, haben
wir die E-Mail und
das Passwort schon da. Da wir nicht gesagt haben
, dass dieser Status entfernt wird, können wir
diese direkt testen,
indem wir Funktionen zuweisen. Lass uns darauf klicken und sehen. Die Homepage ist geöffnet. Sie denken also vielleicht, wir navigieren nicht
nach der Anmeldung, sondern nach der Anmeldung. Das heißt, wir haben
dieses Schild hier. Wir navigieren nicht. Aber wenn wir hier zur Hauptdatei Punkt,
Punkt gehen , hören wir uns die Änderung des Kunstzustands
an. Und deshalb werden wir automatisch auf die Homepage
geschickt. nun auf der Homepage Lassen Sie uns nun auf der Homepage eine einfache Schaltfläche haben um auch diese
Abmeldung zu implementieren. Gehe zur Homepage. Hier. Lassen Sie uns wichtige NANDA-Materialautobahnen hinzufügen. Und ich bin jetzt direkt in der App, aber ich werde einen Button haben. Aktionen. Dann kann ich zuknöpfen. Ich kann sein, ich kann das
nicht abmelden. Mach es konstant. Und auf Druck
zuerst BAA, eine
beaufsichtigte Instanz, zu implementieren . Der Kundenstamm von Batteries
entspricht Bobbys
Punkt-Instanz-Punkt-Client. Okay? Das ist Syntax. Hier. Es kann nicht konstant sein. Nun zur Syntax für Psi Naught ist wieder sehr einfach. Verknüpfen Sie Autobahnen,
nicht, melden Sie sich nicht ab. Das war's. Das ist die einzige, die Ruhe genannt wird. jetzt, nachdem ich es gespeichert habe, Wenn ich jetzt, nachdem ich es gespeichert habe, zur App gehe
und hier klicke, das ist die Abmelde-Schaltfläche, sollte
sie uns
zur Startseite weiterleiten. Es ist Startseite, sagen wir C. Jetzt werden wir
auf die Anmeldeseite weitergeleitet. Unsere Anmelde-,
Anmelde- und Abmeldefunktionen
funktionieren also einwandfrei. Im nächsten Video lernen
wir ein Konzept kennen, das als Deep-Linking
bekannt ist. Danke.
8. Deep Link Integration: Hallo, willkommen zurück. In diesem Video werden
wir an dieser
Deep-Link-Integration in unserer App arbeiten. Wir haben also die
E-Mail-Passwortauthentifizierung funktioniert. Lassen Sie uns Deep-Links einrichten
, damit Benutzer, die
sich über einen magischen Link oder
extern angemeldet haben oder nicht, das heißt, Google oder Facebook, zu
der App zurückkehren
können , die Sie zu Ihrem
Supervisor-Konto, dem Dashboard,
wechseln müssen . Dann klicken Sie auf Authentifizierung. Ich kann dann auf
URL-Konfiguration klicken. Hier finden Sie diese
Steadies, Weiterleitungen, URLs, URLs, die seltsame Anbieter weiterleiten
dürfen. Nach der Authentifizierung. Klicken Sie einfach auf
URL hinzufügen und klicken Sie mit der rechten Maustaste auf den io-Punkt. Super Möglichkeiten, dass meine App dann einen Doppelpunkt mit doppeltem Schrägstrich einloggt. Ich finde einen Rückzugsort, das war's. Und dann klicken Sie auf Domain hinzufügen. Siehst du, wir haben diese
Weiterleitungs-URL hier. Sie können dies in
meine Flutter-App
und diesen Login-Rückruf umbenennen . Aber ich habe versucht,
dieses Ding zu ändern, das
io dot Superbus ist ,
und es
hat mir eine Weile Zeit gegeben , Add umzuleiten. Wenn Sie möchten, können
Sie es selbst ausprobieren und
verschiedene Namen angeben. Der nächste Schritt
für Deep Linking
besteht nun darin, etwas Code hinzuzufügen. Im Ordner Android und iOS. Du kannst einfach der Superbus-Dokumentation
nachlesen das
Playing-C einrichtest. Wir haben diese
Weiterleitungs-URL hier hinzugefügt, sie verwenden den
Flatter-Schnellstart. Ich habe
danach den Namen für Android geändert, die Android-Apps-Quelle und AndroidManifest.xml
hinzugefügt. Also lass uns dorthin gehen. Die Android-App-Quelle bedeutet
AndroidManifest.xml. Und unter diesem IntentFilter müssen
wir dieses Ding kopieren. Okay, kopiere einfach den mittleren. Geh da hin. Und hier oben
ist das die Abschlussaktivität. Einfach einfügen. Hier, ändere das Schema. Das ist deine Reloaded My App. Und der Host ist derselbe, das ist Login-Callback. Wir sind zurückgekehrt, okay. Die Sache, wir
müssen nichts tun. Jetzt für iOS. Wir müssen diese Änderungen vornehmen. Das ist der Schlüssel. Ich muss einfach
dieses Ding über
der End-Snare kopieren . Gehen wir zum iOS-Ordner. Dann. Führen Sie unsere Datei
info.plist aus. Hier. In dieser Position. Einfach einfügen. Und noch einmal, ändere
diese Zeichenfolge hier. Das ist meine Lot-App. Das war's. Zeitraum. Beenden Sie nach diesen Änderungen einfach Ihre Anwendung. Stellen Sie sicher, dass Sie
alles speichern und es dann erneut
ausführen
, damit
sich diese Änderungen in
der Anwendung widerspiegeln. Das war's also für diesen Deep-Link. Im nächsten Video werden
wir daran arbeiten, wie die Google-Anmeldung in unserer App
implementiert wird. Danke.
9. Einrichtung von Google Oauth: Hallo, um die
Google-Authentifizierung in unserem Projekt zu aktivieren. Zuerst müssen wir
Google Art einrichten und
diese Anmeldeinformationen abrufen. Öffnen Sie also einfach Ihren Browser, gehen Sie zu cloud.google.com, dann sind Sie standardmäßig bereits
angemeldet. Wenn nicht, melden Sie sich einfach mit ihrem Google-Konto an und klicken Sie anschließend auf Konsole. Nun, ich habe dieses
Projekt bereits, aber Sie werden es vielleicht nicht sehen. Vielleicht siehst du hier wie
wähle das Projekt aus. Dann klicken Sie hier. Klicken Sie dann oben
auf Neues
Projekt erstellen. Einfach das Projekt benannt, ich werde seine Flut schreiben. Die Glühbirne ist. Okay. Dann klicken Sie auf Erstellen.
Es ist schöpferisch. Wie Sie nun sehen können,
wählen Sie einfach das neu
erstellte Projekt aus. Jetzt können Sie hier sehen, dass
Sie in Florida arbeiten. Armut ist also der nächste Schritt wir tun müssen, indem wir
die Schlüssel für unser Projekt erstellen. In der Suchleiste. Geben Sie hier einfach oder AUD ein. Klicken Sie auf den Zustimmungsbildschirm. Wählen Sie dann diese Option
extern unter Benutzertyp aus. Einfach laborextern. Klicken Sie auf Erstellen. Dann
füllen Sie einfach dieses Formular aus. Ich werde nur sagen, dass
es die Support-E-Mail von Purvey ist. Ich habe kein Logo. Domäne. Einfach auch hier. Ich denke, nichts
anderes ist verpflichtend. Klicken Sie auf Speichern und Weiter. Als Nächstes müssen
Sie Ihre Rückruf-URL finden. Wir müssen also jetzt nicht
die Bereiche und
OwlTest-Benutzer auffüllen , gehen Sie
einfach zum Here
Supervisor-Dashboard. Hier. Klicken Sie auf die Option Projekteinstellung und wählen Sie
dann die Option API. Jetzt können Sie hier
die Projekt-URL sehen. Triff diesen, kopiere ihn einfach. Und dann gehe wieder
zur Google Console. Klicken Sie auf Anmeldeinformationen.
Diese Option. Okay, ja, dann klicken Sie auf Create Credentials
, um
die OT-Client-ID auszuwählen. Jetzt wähle ich
als Anwendungstyp einfach die
Webanwendung. Da wir Android, iOS und Webmeeting haben. Jetzt wird der Name verschwommen sein. Super Webclient. Dann ist das wichtig für die
autorisierte Weiterleitung, URI. Erste Basis, dies ist die, die Sie aus dem
Superbase-Dashboard
kopiert haben. dann am Ende
daran, diese Zeilen hinzuzufügen, nämlich Schrägstrich und Punkt v1-Punkt-Callback. Dieses Ding, das
musst du dir einfach merken. Und dann musst du diese Zeilen
schreiben
, damit sie
zu unserer App umgeleitet werden. Und dann klicken Sie einfach auf Erstellen. Danach
erhalten wir die Anmeldeinformationen. Kopieren Sie die Werte und fügen Sie sie
hier ein, da Sie sie später
benötigen. Danach gehen Sie einfach
zur Authentifizierung. Also Bobby, weil wir es jetzt sind und wir werden diese
Anmeldeinformationen hier verwenden. Klicken Sie auf Anbieter und suchen Sie
dann nach Google. Und Sie können sehen, dass es nach
einer Client-ID und einem
Client-Geheimnis fragt . Das war's. Und sieh dir die Umleitungs-URL als
Slash v1 Slash-Callback an. Kopieren Sie nun diese Client-ID. Staat hier. Kopieren Sie den geheimen
Client-Status hier erneut und klicken Sie auf Speichern. Das war's. Wir haben alle Schritte
abgeschlossen und die
Google-Anmeldung für unser Projekt erfolgreich
konfiguriert . Im nächsten Video werden
wir sowohl an der Benutzeroberfläche als
auch an der Implementierung arbeiten. Danke.
10. Google Sign In implementieren: Jetzt ist es soweit. Da alles erledigt ist, implementieren
wir die Google-Anmeldung
in unserem Flutter Lab. Lassen Sie uns zunächst die
Schaltfläche auf der Startseite erstellen. Nach dieser Anmeldeschaltfläche. Einfach die Reihe. Dann haben wir Kinder. Und diese Kinder. Eine Klippe, die wir als
Erstes haben werden ist die erweiterte Region. Und innerhalb dieser erweiterten Region werden
wir eine Teilung haben. Das werden wir haben. Wie immer können
Sie die Benutzeroberfläche
nach Ihren Wünschen ändern. Für mich ist dies kein Tutorial über eine sehr gute
Benutzeroberfläche, so etwas. Gensätze, die von Kindern stammen,
werden den Text lesen. Und andererseits habe ich
dieses erweiterte Sprichwort, ich will einfach dieses Ding. Der Benutzer weiß jedoch
, dass er sich entweder mit seiner
E-Mail-Adresse
anmelden kann oder dass er sich
direkt anmelden kann. Hier. Du kannst ihm einfach eine Konstante geben. Und ich werde den
früheren Teiler entfernen. Dieser. Wenn du willst, kannst du es behalten. Ich will nur diesen
einen Teiler hier haben. Und jetzt. Nach dieser Zeile dann Dramatiker, Gliederung,
Schaltfläche, Symbol und drücken. Behalte es einfach so. Etikett. Sollen wir dann viel mit Google machen. Dann werde
ich im Symbol ein Bildpunktnetzwerk haben. Ich verwende hier einfach ein
Netzwerk-Image. Ich wollte es nur sehr einfach
halten. Und auch
die Höhe des Bildes wird D sein .
Und
googeln Sie einfach ein beliebiges Bild. Dann das Google-Logo transparent. Und ich kopiere einfach
diese Bildadresse
und füge sie hier ein. Speichern Sie es. Siehst du, es sieht anständig aus. Nun, um die
Google-Anmeldefunktion zu implementieren. Lassen Sie uns zunächst
eine neue Schaltfläche erstellen. Das ist kein Button
, der ein boolescher Wert ist. Melden Sie sich bei Google an. Das Laden wird wie folgt als
falsch bezeichnet. Gehen Sie dann zu dieser Gliederungsschaltfläche und schreiben Sie hier einfach, ob die
Google-Anmeldung wahr ist Dann wird wie gewohnt die
kreisförmige Fortschrittsanzeige angezeigt. Und wenn Sie sehen, dass das bereits
vor Ort ist, machen Sie es zu einem Waschbecken. Und jetzt werden wir den Code schreiben. Das erste, was wir tun
werden, ist den Status festzulegen. Das Laden der Google-Anmeldung entspricht „Wahr“. Dann haben wir diesen
Try and Catch-Block. Dies ist eine Syntax,
Syntax für Google. Loggen Sie sich ein. Und zwar sofort. Autobahnen mit einer Breite von bis
zu 90 km/h, wie diese. Okay. Schreiben Sie in diesen Anbieter
einfach den Anbieter. Siehst du, du hast viele Anbieter. Ich werde Google benutzen. Dann importieren sie wichtige Dinge
direkt hierher. Wir müssen zuerst diesen Check machen. Das ist k ist Web, dieser. Ganz oben wird es also einen wichtigen
Grundpunkt
geben, Punkt. Das heißt, wenn es Web ist
, dann tu es einfach nicht, das heißt, schreibe es nicht. Rls. Verwenden Sie die Umleitungs-URL, die io dot ist. Scoop immer. Mein Flatter, meine Flatter-App. Einloggen, Rückruf, so. Das ist, das war unser Schreiben, an das ich mich gerade in der Reihenfolge der
Umleitungs-URL tief erinnert habe und so. Dies ist der einzige Code, der danach
einfach in diesem Drag
übernommen wurde , das ist Catch-Block,
oder? Gerüst. Kontext-Bote, keine Snack- oder Snackbar-Inhalte
anzeigen. Das nächste Ding, so. Wenn Sie möchten, können Sie
die Hintergrundfarbe in
L-Farben mit dunkelrotem Akzent ändern . Und stellen Sie den Status ein. Google-Anmeldung ist
gleichbedeutend mit Falsch. Wir haben redundanten Code. Es ist Zeit, dass wir testen. Wenn ich gehe und hier zu unserer Authentifizierung
und unseren Benutzern gehe, entferne
ich diesen Benutzer einfach da ich die
Google-Anmeldung mit
demselben Benutzernamen verwenden werde . Jetzt. Lass es uns testen. Alles ist gerettet. Ja. wir mit Google fort. Es eröffnet ein Konto. Ja. Ich werde es wählen. Es hätte Regie lesen sollen. Lassen Sie uns sehen warum. Hier. Ich schätze, wir haben die
Google-Anmeldung, aber sie wurde nicht umgeleitet. Muss hier ein Problem sein. Siehst du, es
hätte hier wiedergewählt werden sollen. K Phi starte hier neu,
nichts wird passieren. Gehen Sie einfach und entfernen Sie diesen Benutzer. Und geben Sie in den Mietverträgen
eine URL-Konfiguration an. Mal sehen, was
passiert, wenn ich
diesen lokalen Host in den direkten Weiterleitungs-URLs der
EU entferne . Lass uns sehen. Meine Vermutung. Das ist der richtige. Ich werde das Reh einfach nochmal schlagen. Speichern Sie es. Okay,
lass es uns noch einmal versuchen. Sie mit Google fort. Und sieh. Ich schätze,
Sie konnten nicht verstehen
, was zu unserer App
umgeleitet wurde. Aber ich lag da war dieses Problem. Ich entferne einfach den lokalen Host, Sie lokalisieren, aus
den Redaktor-URLs. Und im Moment ist
alles in Ordnung. Es funktioniert super. Sie können sehen, dass Google da ist?
Nun ja, das ist es. Damit
ist auch unsere Anzeige abgeschlossen. Ich hoffe es hat euch gefallen. Im nächsten Modul werden
wir lernen, wie man die
Datenbank in Super Base
sowie Flutter in Queue verwendet .
11. Arbeiten an der crud UI: Hallo, willkommen zurück zu
einem ganz neuen Video. Und jetzt ist es an der Zeit, etwas über
Datenbanken in Superbus zu
lernen. Superbus bietet eine webbasierte
Benutzeroberfläche, mit der
wir unsere
relationale Datenbank einfach verwalten und mit ihr
interagieren können wir unsere
relationale Datenbank einfach verwalten und . Diese Schnittstelle
bietet eine Vielzahl von Funktionen zum Erstellen und Ändern von Tabellen, zur Verwaltung von Daten
und zum Ausführen von SQL-Abfragen. Also hier können Sie diesen
SQL-Editor sehen, gehen Sie einfach dorthin. Die Sache ist in Supervision, Sie müssen Ihre
Tabellen und Spalten im Voraus definieren weil Sie beginnen können, bevor Sie Daten in sie einfügen
können. Dies liegt daran, dass Superbus auf der
Postgres-Sequenz basiert
, einem relationalen
Datenbankmanagementsystem. Und es erfordert ein
vordefiniertes Schema , um Daten zu speichern. Also hier, geh einfach dorthin, gehe zu diesem SQL-Editor. Oder wenn wir in die Datenbank gehen, sehen wir
auch hier, wir haben
dasselbe, eine neue Tabelle. Klicken Sie einfach auf neue Tabelle und geben Sie Ihnen
nun eine Tabelle, einen Namen. Ich nenne es Aufgaben. Jetzt werde ich diese Sicherheit auf Zeilenebene
vorerst deaktivieren und Echtzeit aktivieren. Denn natürlich werden wir auch lernen, wie man
Echtzeitdaten verwendet. Unten sehen Sie nun, dass es zwei
vordefinierte Spalten gibt. Das ist id und
create a created at. Die ID ist echt. Generieren Sie die ID automatisch
und überprüfen Sie, ob diese primäre ID ist. Jetzt hier. Klicken Sie einfach auf Spalte
hinzufügen. Dann. Außerdem werde ich einen
Titel schreiben und ihm Text geben. Das sagte ich. Und die
zweite wird die Benutzer-ID schreiben weil wir
den Benutzer natürlich auch speichern müssen. Und hier werde ich es benutzen. Als Nächstes können Sie
es auch als Teaser verwenden. Supervised gibt diese
Benutzervariable oder die
Benutzer-ID jedoch als Zeichenfolge zurück. Deshalb verwende ich String. Und später
müssen wir einige Änderungen vornehmen, oder du kannst auch sagen, konvertiere, dass wir es dieses Mal machen werden. Wir haben also die Spalte, wir haben den Namen
und es wird in
Echtzeit ausgeführt und dann klicken Sie auf Speichern. Oh Kay. Und wenn ich an den Tisch gehe, auch der Redakteur,
sieh zu, dass wir unseren Tisch haben. Es ist zu verlieren. Ebenfalls. Ich verwende
diesen neuen Emulator. Das heißt, ich habe
mein echtes Gerät angeschlossen , weil Android Studio
früher stark hinterherhinkte. Das ist der Grund. Erlernen von
Crud-Operationen fortfahren, lassen Sie uns zunächst an
einigen Abschnitten der Benutzeroberfläche arbeiten. Erstellen Sie eine neue Datei im
Seitenverzeichnis. Dann spiel richtig. Erstellen Sie Seite, Punkt, Punkt und Punkt, Punkt. Okay? Also importiert der Vater
auf der Create-Seite einfach Material und tötet es dann. Sie sind bei der
Benennung der Seite vollständig starr geblieben. Dann werden wir
wie immer als Erstes einen booleschen Wert verwenden, ausschließt gleich Falsch ist. Und wir werden den Controller erstellen, der
alles braucht ,
denn
wenn wir etwas erstellen,
wird natürlich wenn wir etwas erstellen, ein nächstes
Feld involviert sein. Und ich werde es Titel nennen. Controller entspricht x
Editing-Controller. So wie das. Jetzt geben Sie einfach
eine Gerüststange zurück. Ich kaufe Anleihen. Erstellen Sie als Nächstes Daten. Dann im Körper, indem Sie
starre Bindungen
und Erkenntnisse hinzufügen starre Bindungen und Erkenntnisse , dass 15 und dieses Kind eine Säule haben. Lassen Sie uns diese
Kinder streiten. Und sagen wir X3. Und da nur ein
Text
das Veröffentlichungsdatum hat, verwende ich dieses Formular nicht und lasse dieses Textformular
fehlschlagen Fremdschlüssel. Auch hier ist es wirklich einfach. Wie die Dell
Controller-Deklaration, Const ,
input, declaration, int x. Der Titel und der Rahmen. Geben wir ihm einen Rahmen, der
eine Kontur im Startrahmen ist. K. Danach TextField. Geben Sie mit
Hilfe seiner großen Schachtel etwas Abstand. Ich, dann erhöhte Schaltfläche, Erstellen und mache es konstant. Okay. Wir werden diese Seite erstellen haben und sie werden sie
auf jeden Fall auf unserem Gerät
sehen. Aber zuerst erstellen wir auch
unsere Bearbeitungsseite. Dies ähnelt dem Erstellen einer Seite, einzige Unterschied besteht
jedoch darin, dass
wir Daten akzeptieren und die Daten
zuweisen. Controller für die Textbearbeitung. Geh einfach hier hin. Material importieren. Stattliche, starre Bearbeitungsseite. Hier. Diesem Konstruktor
werden wir zwei Dinge akzeptieren. Letzte Zeichenfolge, data,
final int, id. Und dann
akzeptieren wir es einfach so, wie es diesen Datensatz
bearbeitet hat . Das war's. Jetzt wie immer das Gleiche. Boolean is loading
ist gleich false. Controller bearbeiten. Der Controller wird den X-Editing-Controller so ausführen. Und jetzt, im Ausgangszustand, werden wir
sagen, werden wir
sagen dass ich ihnen einen Datenwert gegeben
habe. Das Token Cooler, Slag, Rigid, Small W, Rigid,
keine Daten wie diese. wir danach Gehen wir danach zu unserer Create-Seite und kopieren Sie
einfach dieses Gerüst. Gerüst. Wir haben hier. Jetzt. Es werden Daten hinzugefügt. Sie werden kontrollieren, ist da. Das wird ein Date sein. Das ist ein Date. Ich denke nur nach. Was können wir tun? Okay, lass es uns
hier so machen. Wenn is loading gleich wahr ist. Wenn der Ladevorgang wahr ist,
tut mir leid, ausgeglichen, Mitte, Jane, kreisförmige
Fortschrittsanzeige. Oder ich habe eine Kolumne. Bei dieser Kolumne sagen wir, Kinder bleiben
auf den Bürgersteigen. Gewicht, Doppelpunkt,
Unendlichkeit, Höhe. Aber ich erstelle hier nur
den Update-Button. Nicht viel. Es ist, als würde
man ihm einfach die volle Breite geben. Erhöhte Taste beim Drücken. Und das Kind wird am nächsten Tag
weg sein. So wie das. In dieser Spalte. Das ist, nachdem das Größenfeld Hilfe eines Felds mit einer anderen Größe einen gewissen Abstand ergibt. Ich dann und dann ein Teiler. Und zum Schluss noch eine Schaltfläche
nur für diesen Löschzweck. Denn dieser Benutzer kann nur
von dieser Seite löschen. Konst. Ich kann, ich
kann mit dem Löschen beginnen. Dieses Label kann const sein. Als Nächstes löschen. Und damit Stil. Geben wir aber den Dan-Stil, die
Hintergrundfarbe, meine TDL, den
Staat, das Eigentum, den Punkt an. Dieser andere Code, an den Sie sich
erinnern müssen , wurde nicht von mir gemacht. Und speichern Sie es. In einfachen Worten. Der einzige Unterschied zwischen
den beiden Seiten ist, dass wir auch hier eine Schaltfläche
zum Löschen
haben. Speichern Sie einfach alles. Wenn Sie diese Seite einfach
auschecken möchten. Okay, lass uns zu main.out gehen. Und statt Homepages
senden Sie es, um eine Seite zu erstellen und zu speichern. Siehst du, das ist unsere Create-Seite. Und wenn wir Seite bearbeiten ausführen und es nach zwei
Argumenten fragt, Zeichenfolge und Ganzzahl. String und sei hallo. Integer kann zwei sein. Wenn ich es speichere. Und Checkout-Seite. Siehst du, dieser Halo wird hier
bereits zurückgegeben weil wir
ihn im Init-Zustand zuweisen. Und dieses Update
nimmt den ganzen Bildschirm ein. Dann haben wir diesen kleinen Teiler. Dies ist die Schaltfläche zum Löschen. Es sieht anständig aus. Lassen Sie uns
es noch einmal auf früher ändern. Das ist die Homepage. Das ist es also. Im nächsten Video werden
wir an der Home-UI arbeiten sowie an der Erstellung, Implementierung dieser
Create-Funktionalität und Funktionalität. Und Q.
12. Implementierung von Funktionalität erstellen: Hallo. Jetzt haben wir Seite erstellen
und Seite bearbeiten bereit. Es ist Zeit,
an der Homepage zu arbeiten und Schaltflächen zu erstellen, um zu anderen Seiten zu
navigieren, sowie am
gesamten Inhalt zu arbeiten. Sehr selten werden wir die erstellten Daten abrufen und
zeigen. Also geh zur Homepage. Hier. Lass uns da drin einen Titel geben, aber ich werde einfach schreiben. Übrigens ist die
Ausstattung dann sehr top. Lass uns importieren, Seite
erstellen, importieren, Seite bearbeiten. Fangen wir hier an,
an der Leiche zu arbeiten. Und wir entfernen n. Wir werden einen Punktgenerator für die Listenansicht
verwenden. Ich hoffe, du kennst all diese
Widgets, denn das sind wieder die Grundlagen von
Flutter. Ich habe eine Pistole. Und im Moment
zeige ich nur ein paar Dummy-Daten. Und später werden wir
diese Daten durch die von ihnen kommenden
Daten ersetzen . Superbus, Item Builder, Text ,
Index, Zeichenfolge und Daten entsprechen Dummy-Daten. Und die Indexnummer. Wir werden diese Datenzeichenfolge anzeigen. Geben Sie dann Text im Listenstil zurück. Daten, dann Trailing. Lass uns eine Symbolschaltfläche haben. Und das Symbol wird eine Konstante haben. Ich kann, ich kann hier eine Anzeige
starten, es wird sein, ich kann mit der Bearbeitung beginnen. Und geben wir ihm eine
Farbe, Farben, Rot. Und
lassen Sie uns vor Ort navigieren. Das ist Navigator Dot Push. Auf Decks. In diesem lauten Layout in
meinem TBL-Seitenlayout wird Text und wir werden ihn
an die Bearbeitungsseite senden. Daten bearbeiten ist einfach keine
Datenvariable und Ideen, die indexieren. Die sind wieder nur Dummy. Und als Nächstes
müssen wir einen kreativen
schwebenden Actionbutton tun. Schwebender Aktionsknopf. Kind. Const, ich kann, ich kann rotzen, Brust hinzufügen. Und damit sind wir fertig. Wir werden zur
Create Bridge navigieren. Navigiere ihren Punkt, drück. Meine tägliche Seite,
Layout-Seite hier. Das war's. Speichern wir es und
schauen uns die App an. Siehst du, es sieht gerade
sehr anständig aus. Zweifellos handelt es sich um Scheindaten, aber es ist sehr einfach
, sie einfach zu ersetzen. Da wir
die Benutzeroberfläche jetzt fertig haben, ist
es an der Zeit,
dass wir daran arbeiten, diese Cred-Operationen zu erlernen, beginnend mit der Erstellung unserer
Einfügedaten in Superbus. Gehen Sie also einfach auf Seite erstellen. Zuerst. Ich werde
dir eine Syntax erklären. Um einen Datensatz einzufügen, ist
die Syntax sehr einfach. Wir müssen schreiben, dass das eine
Superhighways-Instanz ist, dass diese Client-Instanz. Dann von, von nimmt uns. Was ist ein Tabellenname, in den
Daten eingefügt werden sollen? Hier? Einfach, nur z.B. wir haben Benutzer oder du kannst
sagen, wir haben die Aufgaben. Dann ist der Befehl
einfach, das heißt einfügen, einfügen. Und dieser Bereich. Dies ist ein zweites Argument , das Daten in
Form einer Karte akzeptiert, unser Schlüsselwertpaar wie dieses. Nehmen wir an, wir haben dann einen Wert, den Mittelwert, dann das Datum, dann den Wert. So wie das. Dies ist die Syntax
für das Einfügen. Und nehmen wir an, Sie möchten
mehrere Datensätze gleichzeitig einfügen. Fügen Sie sie also einfach ein, indem Sie sie
erwähnen. In einer Anzeige wie dieser. Dann wird
es ähnlich eng werden, es wird einen solchen
Value-Liefertermin geben. Auf diese Weise können wir
mehrere Datensätze gleichzeitig einfügen. Nehmen wir nun an,
Sie haben
diesen Wert eingefügt und möchten
, dass er sofort abgerufen wird. Dafür können wir, was wir tun können, eine Variable verwenden
, bei der Theta
gleich wait ist , wie diese. Und ganz am Ende fügen Sie
einfach eine Punktauswahl hinzu. Hier. Es wird die eingefügten Daten abrufen. Das heißt, wir
erhalten die Antwort in der früheren Methode, die
direkt mit await ist , und
ohne die Auswahl zu verwenden, gibt
sie Null als Antwort zurück. Das war's. Das war's. Also haben wir es. Wir haben verstanden,
wie man Daten einfügt. Jetzt ist es an der Zeit,
diese Create-Funktionalität zu implementieren. Das Schlimmste ist, lassen Sie uns
eine Supervise-Instanz erstellen , der
diese Soup-Basis entspricht um diesen
Instance-Startclient zu beaufsichtigen. Dann erstellen wir
eine zukünftige Funktion. Fügen Sie Daten ein. So wie das. Das erste, was wir tun werden,
ist das Laden zu erledigen. Dann werden wir den Code
in einen Try-Catch-Block packen. Hier. Als erstes benötigen wir
die Benutzer-ID. Und das können wir mit der
Kunstmethode Superbus erreichen, dieser Art Current-Benutzer-Punkt-ID. Also heißt es jetzt
, dass es Null sein kann. Da wir jedoch wissen, dass der
Benutzer bereits authentifiziert ist, werden
wir diesen Operator haben weil wir mit Sicherheit wissen
, dass es einen Wert geben wird. Lassen Sie uns nun diese Syntax schreiben. Es ist von Todos Dot Insert. Nein Wert ist die Benutzer-ID dy
del, del controller dot txt. Werden wir diese Idee verwenden? Okay, hier. Nachdem du das getan hast, war
es mein Fehler. Und dann
navigiere ich einfach und poppe. Das ist navigieren, gate the pop. Und jetzt lasst uns diesen Fang machen. Nur zu Debugging-Zwecken werde
ich Daten mitbringen. Daten einfügen. Danke, Tage. Legt fest, dass
der Ladestatus gleich Falsch ist. Und Scalp for Messenger zeigt
keinen Inhalt der Snackbar an. Dann ging etwas schief. Lass diese Höhle fallen. Darin bin ich dran. Lassen Sie uns das entsorgen,
ich sage
dem Controller , Punkt entsorgen,
Punkt entsorgen, beaufsichtigen. Es gibt also Natrium, es
gibt kein Speicherleck. Hier. Verwenden Sie dazu einfach
Ternary wie const,
Center, Cooler,
Progress Indicator. Und der Calder vor Ort. Fügen Sie Daten wie folgt ein. Das war's. Lassen Sie uns nun diese
Funktionalität testen. Wenn ich auf ja klicke. Und wenn ich jetzt einfach Barbies
schreibe und auf Erstellen klicke, dann ist
es, das hat navigiert,
dass Pop aufgerufen wurde. Gehen wir also zur
Datenbank und aktualisieren sie. Siehst du, wir haben das
Lernen der Daten überwacht, wir haben die Benutzer-ID. Das Einfügen von Daten
funktioniert also einwandfrei. Im nächsten Video
erfahren wir, wie diese Daten
abrufen und in unserer App
anzeigen können. Danke.
13. Implementieren von Funktionalität lesen: Da wir erfolgreich Daten
eingefügt haben, werden wir
jetzt lernen, wie
man diese Daten abruft. Power-based
bietet uns also eine ausgewählte Methode zum Abrufen von
Daten aus einer Tabelle. Gehen Sie einfach zur Homepage. Ich werde einfach den
Index schreiben, um Daten auszuwählen. Und hier ist es sehr
einfach. Es ist super, wenn der Tabellenname verlieren
soll und dann links heißt. Das ist also die
Methode, die wir verwenden werden. Dadurch werden alle Datensätze von
diesem Tag abgerufen und Sie verlieren. Ebenfalls standardmäßig. Powerbased gibt also
maximal tausend Zeilen zurück. Offensichtlich sind es eine Menge Daten. Wenn Sie jedoch mehr verlangen, kann
diese Einstellung auch geändert
werden. Außerdem gibt diese Syntax alle Spalten
zurück. Das ist ein vermuteter Name
für die Angabe des Alters. Aber wenn Sie wollen, aber was ist, wenn wir
nur eine bestimmte Spalte benötigen? Sagt nur den Namen
aller Datensätze. Also hier schreibe ich einfach mal
hier auch im Select. Es wird also nur
die Titelspalte zurückgegeben. Das war's. Diese, diese beiden
musst du dir merken. Es ist eine sehr einfache Syntax. Schreiben wir nun eine
Funktion zum Abrufen von Daten. Es wird eine Zukunft sein, und am Ende wird es
eine Liste geben. Nennen wir es die gelesenen Daten, und es wird eine Senke sein. Es ist sehr einfach. Schreiben Sie einfach. Das Endergebnis entspricht wait. Autobahnen von To-Dos. Wählen Sie diesen Satz nicht aus und geben Sie dieses
Ergebnis zurück. Nichts Schickes. Da es sich um eine
Zukunft im Körper handelt, werden
wir einen Future Builder verwenden. Zuallererst werde ich das einfach ausschneiden, weil
wir es einfügen werden. Die Zukunft wird die Zukunft. Dann hat es zwei Eigenschaften. Die Zukunft wird Lesen,
Daten und Builder sein. Es gibt uns einen Kontext sowie einen Überblick über die Spüle. Das heißt, das sind die Daten, die aus der Somabasis
stammen. Nun, hier werden wir zuerst schreiben, wenn Snapshot Dot Adder hat wenn Snapshot Dot Adder hat,
falls etwas nicht stimmt, return center child, snapshot dot, dot two streams. Schreiben Sie das einfach direkt. Hier. Ich werde eine
kreisförmige Fortschrittsanzeige für Kinder von Const Center zurückgeben. Deshalb befindet es sich
im Ladezustand, den
es abrufen möchte. Auf diesem Bildschirm wird eine
Ladeanzeige angezeigt. Und was ist, wenn der Snapshot Daten enthält? Auch hier kommt
diese Syntax von. Die Zukunft wird sich nicht regenerieren. Dies ist eine nicht weit entfernte Syntax. Wenn der Snapshot Daten enthält,
nehmen wir an, der Supervisor hat etwas
zurückgegeben, okay? Und es wurden keine Daten eingefügt. In dem Fall. Ich zeige einfach einem Rigid, wo es Return ist
und wo es geschrieben steht. Keine Daten, jedes Etikett wie dieses. Und wenn die Länge
größer als Null ist, geben
Sie eine Liste zurück. Sehen Sie sich Punkt n hier an. Die Anzahl der Artikel wird aus Schnappschüssen, Punktdaten und Punktlängen bestehen. So viele werden
sie kommen. Erstellen Sie einfach diese
Anzahl von Widgets. Und der Gegenstand wird lernen. Es gibt Kontexte und Index. Index ist es. Und jetzt
komme ich zurück zu dieser
Listenansicht, okay? Ich werde den Artikel zurücksenden. In diesem Item Builder. Als Erstes werde ich
eine Variable namens var data,
snapshot data und diesen Index haben. Also erinnerst du dich
, dass es auf der Karte steht. Dies ist ein Kartendatentyp. Jetzt brauche ich
diese Dummy-Daten nicht. Anzahl der Artikel wird sein in Ordnung
sein. Ich glaube, ich habe
diesen Fehler hier gemacht. Ich muss die Listenansicht machen das einfach zu entfernen. Lassen Sie uns sehen, welche Daten es gibt. Jetzt denke ich, dass alles in Ordnung ist. Der Name der Spalte ist Titel. Und was wir senden, ist der, das ist ein Index. Es wird nur eine
ID sein, nicht die Benutzer-ID. Denken Sie daran, denn id ist die Zeilen-ID, die wir
hinzufügen möchten, und sie ist eindeutig. Benutzer-ID wird
für alle seine Daten identisch sein. Kay? Mal sehen, ob es einen gibt, ob ein Fehler vorliegt oder
alles perfekt funktioniert. Lerne beaufsichtigen, es
kommt aus der Datenbank. Und es gab auch eine
Ladeanzeige. Endlich sind wir in der Lage, sowohl Daten als auch Daten zu
erstellen. Im nächsten Video werden
wir
einige weitere Dinge erfahren, wenn es um das Abrufen von Daten
geht.
14. Filter und Modifikatoren: Hallo. In diesem Video lernen wir,
wie wir unsere Daten filtern. Unsere App ruft also alle Daten ab. In den meisten
realen Situationen möchten
wir jedoch nur, dass der
Benutzer seine eigenen Daten liest. Erlaubt uns, nur
Zeilen zurückzugeben , die
bestimmten Bedingungen entsprechen. Filter können auch
mit anderen
Methoden wie Auswählen,
Aktualisieren oder Löschen verwendet werden mit anderen
Methoden wie Auswählen, . Diese Dinge werden wir später
aufführen. Lassen Sie uns nun
einige Filter darin lesen oder verstehen. Diese erste, die wir hier verstehen
werden,
entspricht dieser, ruft alle Zeilen ab, deren Wert in der angegebenen Spalte genau dem angegebenen Wert
entspricht. Einfach. Das dann so, das ist super weit weg. Nehmen wir an, wir haben diese
Tabelle Benutzer genannt. Dann wählen wir hier aus, damit werden alle Benutzer abgerufen. Aber wenn wir.eq lesen, ist es gleich. Und das heißt, eine Namensspalte
sollte diesem Wert entsprechen. Es wird also auf Lead
diesen bestimmten Benutzer abrufen. Und dieser Name ist der
Spaltenname der Todeszelle. Und das ist der Wert
, der gleich sein sollte. Das entspricht also Filter ND. Denken Sie daran, dass das gleichbedeutend ,
naja, wir verbrauchen viel Zeit. In ähnlicher Weise haben wir auch nicht
gleich filtern müssen. Es ruft Zeilen ab, deren Wert der angegebenen Spalte
nicht
übereinstimmt, entspricht diesem angegebenen Wert. Hier können wir also fragen,
nehmen wir an, das ist eine Syntax aus den Benutzern Punkt und E, q ist gleich, sagen wir hier, Name, nicht gleich. Wirklich hilfreich. Abgesehen von
dieser bestimmten Zeile wird also alles abgerufen. Manchmal benötigen Sie dies, dies hängt von
Ihrer Anwendung ab. Dann haben wir dort tolle. Dann ruft der Filter
alle Zeilen ab, deren Wert in der angegebenen Spalte größer
als der angegebene Wert ist. Nehmen wir an, Sie möchten alle Benutzer, die älter
als 18 Jahre sind. Die Syntax ist also so. Von Benutzern. Wählen Sie das Obige aus. Ich glaube, ich habe vergessen, hier die Aussage
auszuwählen. Wählen Sie aus. Und dieser. Wir wählen nicht GT größer als den
Spaltennamen. Werden wir altern? Der Wert ist 18, also würde der
Wert dieser Zeilen nicht in 18 eingehen. Und andere Felder, die
größer als sind, sind gleich. Für alle Zeilen, deren
Wert in dieser Spalte mit
dem Aufenthaltsdatum größer oder
gleich den angegebenen Werten ist . Also einfach zB von Usern select.gt. Nehmen wir an, es gibt eine
Follower-Spalte und bringen oder holen Sie
einfach ihre Benutzer, deren Follower größer als 10.000,
ungerade und größer oder
gleich 10.000 Todesfällen
sind . In ähnlicher Weise haben wir weniger als, das ist LTE weniger
als oder gleich? Ich rutsche einfach hierher. Weniger als das ist d n weniger als gleich. Ähnlich wie LTE. Sie können
es einfach mit demselben Beispiel verstehen. Also noch ein paar mehr. Das heißt, die Spalte
entspricht einem Muster. Hier werden also alle
Zeilen abgerufen, deren Wert unterstrichenen Spalte mit der von
der Reihe angegebenen übereinstimmt. Und denken Sie daran, dass zwischen Groß- und
Kleinschreibung unterschieden wird. Also dieser Fall schickt Dave, wir werden es wie super
Möglichkeiten für Benutzer zur Auswahl schreiben. So wie hier. Wir werden die Namensspalte schreiben
und was ist das für ein Muster? Widersetzen. Es sollte Lake,
The Edge und Sub haben . Ich hatte diesen Namen. Der Felsen, er
wird diesen Namen bekommen. Ich hoffe, Sie haben es
mit diesem Beispiel verstanden. Und in ähnlicher Weise haben wir Spaltenübereinstimmungen mit Groß- und Kleinschreibung, wobei
die Groß- und Kleinschreibung nicht beachtet wird. Wenn Muster. Hier wird es
schön sein, sich zu trennen. Benutzer wählen aus. Ich, wie hier ist es unsensibel. Wenn du es in Kleinbuchstaben geschrieben hast, dann
bringt es auch dasselbe. Als ob du einfach
DAS in der unteren Zeile gesagt hast, es ist kein Großbuchstabe, dann wird auch diese Zeile
gebracht. So wie das hier. Es gibt noch mehr, aber ich werde dir den letzten sagen. Diese Spalte in ist in der ADA, ist im Array. Es ruft also alle
Zeilen ab, deren Wert in dieser Spalte
entweder in der angegebenen
Werteliste zu finden ist . Es ist so, als ob Super mit Benutzern
beginnen kann, auswählen und dann NICHT IN. Und unterstreichen. Dann ist der Status
entweder dort zu finden. Egal, ob dieser Wert
offline oder online oder offline ist, online oder offline ist
dasselbe. Wenn einer dieser Werte vorhanden ist, bringen
Sie ihn mit. Ähnlich gibt es, es
gibt nur wenige weitere Unterelemente, wie z. B. Spalte enthält, wobei jedes Element, das im Wertfilter enthalten
ist, mindestens eine Bedingung erfüllt. hast du. Diese
Dinge. Du kannst lesen. In
der offiziellen Dokumentation können Sie über andere lesen. Moment
werden wir uns mehr auf Gleichheit zwei konzentrieren. Und dann haben wir Modifikatoren. Es gibt Arbeit auf Zeilenebene. Sie ermöglichen es uns, Zeilen
zurückzugeben, die
bestimmten Bedingungen entsprechen ,
ohne
die Form der Zeilen zu ändern . Modifikatoren sind alles, was
nicht zu dieser Definition passt, sodass wir das
Format dieser Antwort ändern können. Das heißt,
aufsteigende, absteigende Grenzen und all
diese Dinge. Denken Sie daran, dass Modifikatoren nach dem Filter angegeben
werden müssen. Das heißt, wenn sich
hinter diesen Punktmodifikatoren ein Filter befindet. Und lasst uns,
lasst uns den Modifikator verstehen. Hier. Es ändert einfach
die Reihenfolge der Antwort. Es sind super Wege, nicht von Benutzern. Wählen Sie aus. Hier fügen wir die Punkt-Spalte mit der Bestellnummer als Versand hinzu. Das Senden sollte nicht falsch sein. In der Standardeinstellung ist also
aufsteigend wahr. Wir können es falsch machen. Und dann wird es in
absteigender Reihenfolge kommen. Und dann müssen wir
diesen Abfragemodifikator einschränken. Es begrenzt, wie viele
Daten herkommen. Nutzer. Wählen Sie Limit aus. Bringen Sie also neue Daten ein, oder nehmen Sie an, Sie möchten
sie als Analyse wie diese beenden. So ist es in Ordnung. Du kannst verstehen, dass es wie ein paar mehr sind. Rufen Sie die Abfrage
als eine und alle Zeilen ab, aber das sind nicht unbedingt, diese beiden sind vorerst erforderlich. Es ist also an der Zeit, das, was
wir jetzt gelernt haben,
etwa drei Dutzend Modifikatoren, anzuwenden . Zu Beginn unserer App haben wir den gesamten Dub abgerufen, aber jetzt verwenden wir einen Filter, wir nur
die von
einem bestimmten Benutzer hochgeladenen Daten abrufen , die authentifiziert
sind. Außerdem werden wir
die Reihenfolge ändern und die
zuletzt verstorbenen Spieler ganz oben anzeigen . Also lasst uns zuerst Master schreiben. Und noch eins. Versuchen wir zu
verstehen, wo Sie vielleicht denken, warum
es nicht angezeigt wird denn im Moment müssen
wir
es aktualisieren , weil es nicht in Echtzeit ist. Sehen Sie, jetzt, nach dem Neustart
, werden uns die drei Daten angezeigt. Jetzt sind wir hier in der Zukunft. Hier funktioniert in Zukunft einfach nach Punkten der
rechte Punkt gleich. Der Spaltenname ist die Benutzer-ID. Und die Benutzer-ID sollte
den Nebenstraßen von
Autobahnen entsprechen den Nebenstraßen . Die aktuelle Benutzer-ID wie folgt und die
Bestellung sollte ID sein. Ascending ist gleich false. Wenn ich es jetzt speichere, hat
es sich geändert. Jetzt. Wir haben die neuesten
Daten oben. Ich hoffe, du hast heute viel
gelernt. Im nächsten Video werden
wir an der
Echtzeitfunktionalität in der Warteschlange arbeiten.
15. Realtime Datenbank implementieren: Hallo. Jetzt können wir Daten hinzufügen, aber der Benutzer muss
seinen Bildschirm neu starten , um die
Änderungen zu übernehmen. Es ist keine gute Erfahrung. Wir werden also
lernen, Streams
anstelle von Futures zu verwenden , um Updates in Echtzeit anzuzeigen. Also, was ist Syntax zuerst, lassen Sie uns Ihnen eine Syntax zeigen, die eine Echtzeitdatenbank ist. Entweder können Sie
das direkt verwenden, das sie beaufsichtigen. Punkt von dort aus nennen
wir seinen Benutzer,
nehmen wir an, dann stream, stream. Und denken Sie daran, dass Stream eine Liste von
Primärschlüsselspalten als Argument verwendet. Es ist also primäres E erforderlich, und schreiben Sie einfach die ID. Okay, hier. Dann hör zu. Und in diesem Hörspiel erhalten wir eine Liste von Daten und Sie können mit diesen Daten machen, was
Sie wollen. Tu etwas, okay, hier, in dir, in dir,
du kannst etwas tun. Aber was ist, wenn Sie mit Stream Builder
zuhören möchten? Mit dem Stream Builder können
Sie es dann direkt hier
zuweisen, wie folgt. Nehmen wir an, ein
Stream ist da. Lass uns trimmen. Das Argument ist da. Und
hier kannst du einfach Superhighways schreiben, die
von Usern streamen. Das war's hier wie
immer, Primärschlüssel. In diesem Fall Kapital. Ich will mich nur nicht
aneinander anlegen. Das ist die Syntax. Wir werden diese Syntax verwenden , weil wir
StringBuilder verwenden. Wenn Sie die Annahme auch
im Init-Zustand
direkt anhören möchten , dann können Sie die
obigen Zeilen bis 15 implementieren. Das erste, was Sie tun müssen, ist zweifellos, dass wir hier direkt schreiben
können. Aber ich werde
es einfach in einen starren Zustand versetzen. Und hier werde ich
eine Variable stream
und lead schreiben , weil ich ihren
Wert in jedem Zustand zuweisen werde. Und es hat diese Liste
dynamischer Werte. Und wir schreiben einfach so einen
Lesestream. Und dann, im Init-Zustand, werde
ich den Readstream machen,
entspricht Supervise Dot Forum. Um den Stream zu verlieren. Dort steht der Primärschlüssel mit der
Frage, ich schreibe die ID. Dann ist die
Spalte mit Punkt gleich der Benutzer-ID. Und der Wert wird überwacht
oder es handelt sich nicht um die aktuelle Benutzer-ID. Und in ähnlicher Weise haben wir eine
Modifikatorfilterspalte. Werden wir aufsteigend falsch identifizieren? Das war's. Wir haben diese Zeichenfolge. Und jetzt ändern wir
das einfach auf drei Millimeter. Dies wird ein Stream sein und
dies wird ein Lesestream sein. So wie das hier. Das war's. Starte einfach neu. Lassen Sie uns nun überprüfen, ob
es funktioniert oder nicht. Nun, wenn Phi Sinus n, rechte Masse, was bleibt dann übrig? Okay, ich hatte dieses Problem
mit den physischen Schlüsseln. Das ist kein Fehler, es ist
auch nur ein Schlüsselwort. Sonst nichts. Wir machen es einfach so und klicken auf Erstellen. Dann sieh mal, acht wurde
automatisch aktualisiert , da wir früher Streams
verwendet Wir mussten die Anwendung aktualisieren oder
neu starten. Offensichtlich ist das
benutzerfreundlicher. Und für die meisten
Anwendungen sind
Stream-Slag-Messaging-Apps
oder ähnliches erforderlich Stream-Slag-Messaging-Apps ,
Benachrichtigungen und so. Nun, ich hoffe, es hat Ihnen Spaß gemacht etwas über die
Echtzeitdatenbank zu
lernen. Im nächsten Video werden
wir daran arbeiten, unsere Daten zu aktualisieren
und zu löschen. Ich danke dir.
16. Aktualisieren und Löschen der Funktionalität: Jetzt ist es an der Zeit, dass wir lernen
, wie man bestehende Daten aktualisiert. Der Supervisor stellt uns zur Verfügung, update my turn und sollte immer mit Filtern
kombiniert werden. Gehen wir zur Bearbeitungsseite. Hier. Lassen Sie uns etwas über die
Update-Funktionalität lernen. Die Syntax lautet also entweder, Sie
können sofort
vom ersten Tag an mit dem Namen beginnen . Angenommen, Benutzer haben ein Punktdatum. Jetzt hier, sende die Daten. Sie möchten dies
in Form einer Karte aktualisieren. Schlüsselwert, das ist der Name. Ich möchte, dass es
zu Elon Musk wechselt. Und als Nächstes
musst du dieses Spiel schreiben, denn hier fügen wir
die Bedingung hinzu,
welche Daten aktualisiert werden sollen . Also sollte id gleich zehn sein. Also aktualisiere die Daten. Wessen Ausweis ist das? Seltsam? Sie haben eine andere Syntax. Um zu aktualisieren. Sie können jedes dieser beiden Benutzerupdates verwenden. Das ist also derselbe Name, aktualisiert auf Elan Musk. Aber statt Match werden
wir Equal verwenden. Das war's. Und hier wird es wie ID sein, ruhiger als nicht in
Form einer Karte. Denken Sie daran, dass
dies ein Unterschied zwischen den beiden Syntax ist. Also, was auch immer Sie möchten, verwenden
Sie dieses D, weil Sie
später verwirrt sein könnten , wenn Sie
irgendeinen Anwendungscode sehen und denken werden, okay, wir haben
nur dieses Schlüsselwort gelernt, wie das verwendet wird. Das ist der Grund. Implementieren Sie
das jetzt einfach in unserer App. Hier. Als Erstes sollten Sie eine
Supervisor-Client-Funktion einrichten. In der Zukunft funktioniert das nicht. Es gibt nichts zurück. Die Datensynchronisierung. Hier schreibe ich, ob Title-Controller-Punkttext gleich Null ist,
dann, wenn er nicht gleich Null ist, dann führe nur
diesen gesetzten Zustand aus. Ist Laden gleich wahr. Fangen. Darin trocknen
Sie einfach sofort. Es ist wahrscheinlich nicht aus List. Nicht aktualisieren. Der Wert ist del update
the title value. Löschen Sie den
Controller-Punkttext und passen Sie ihn an. Was wir zusammenbringen müssen. Ausweis. Id ist eine starre
Punkt-ID wie diese. Und wenn es fertig ist, einfach Navigator, nicht Pop. Wir machen einfach nichts draus. Da wir Streams verwenden, wird
es auf jeden Fall in Echtzeit
aktualisiert. Hier. Wenn etwas nicht stimmt, ist a gleich falsch. Und Gerüstbote
aus Kontexten, Punkten, Snackbar
anzeigen, wird schreiben, dass
etwas schief gelaufen ist. Und wir werden prüfen, ob das
der Header ist. Ok, speichere es. Und ich werde auch
die Entsorgungsfunktion verwenden. Sie verfügen über Kontrollpunkte. Es ist eine gute Praxis
, dass Soja oder weniger für
dieses Dummy-Projekt nicht erforderlich ist. Aber wir
möchten immer das Beste tun. In diesem Update
weisen Sie nun einfach vor Ort die einfach vor Ort die Engine zu,
also diese, und speichern Sie sie. Lassen Sie uns die Anwendung testen. Wenn ich zum dritten gehe
, ist das Master Flatter. Und sie sammeln Flattern und
das und klicken auf Update. Siehst du, nichts ist passiert. Mal sehen, ob es einen Fehler gibt. Die Glühbirne ist Dot
Todos Dot Update. Ich denke, es hätte aktualisiert werden sollen. frühen
Titel-Controller-Punktdecks von Eid stimmen überein. Sehen wir uns unsere Daten an. Okay. Wir haben Master
Florida und Dart hier. Aber warum wurde es nicht in Echtzeit
aktualisiert? Wenn ich es aktualisiere, ist
es da, aber es
sollte nicht der Fall sein. Aktualisierungsfunktion funktioniert. Lass es uns noch einmal versuchen. Aktualisiere. Sag okay, jetzt funktioniert es. Ich bin nicht aus Versehen auf eine ganz
kleine Panne gekommen, habe die
Master-Flirtprogrammierung modifiziert und aktualisiert. Es funktioniert einwandfrei. Wir haben auch die
Update-Funktion verstanden. Jetzt müssen Sie nur noch
lernen, wie Sie Daten aus Superbus
löschen. Superbus stellt uns auch den
verstorbenen meinen dritten zur Verfügung. Es ist sehr einfach wie die Aktualisierungsmethode und
sollte mit Filtern kombiniert werden. Und wir können entweder
Match oder Equal verwenden. Ich meine also, wir nehmen
an, wir haben diese verzögerte Funktionalität. Die Syntax ist einfach. Super Möglichkeiten von
Benutzern, die nicht verzögert werden. Und dann stellen Sie sicher, dass Sie dieses oder ein gleichwertiges Spiel
haben. Ich habe zwar dieses Match hier, die
ID ist gleich zehn, so. Lassen Sie uns eine
Löschfunktion implementieren. Ich werde das einfach kopieren, aktualisieren und einfügen. Ich werde löschen schreiben. Ich benötige
diese If-Aussage nicht. Geben wir an, dass das Laden wahr sein
sollte. Hier. Warte, sollte nicht sein. Löschen. Es ist ein Weight Superbus
von Todos Dot Delayed. Und direkt
haben wir diese Match-ID. Und das werden wir haben,
danach werden wir platzen. Oder wenn Sie einen Pilzfehler haben, zeigen sie ihn
vielleicht
in der Snackbar und weisen ihn einfach über die Schaltfläche mit
der erhöhten Taste zu. Tägliche Daten wie diese, dann platzieren und speichern. Lassen Sie uns das auch testen. Ich werde den
ersten entfernen, Mastermind-Stack. Es wird jetzt entfernt. Wenn wir zu unseren Datenbankdaten gehen, um Daten zu finden, wenn ich sie aktualisiere, werden
es drei sein. Wir haben also erfolgreich
verstanden, wie Daten erstellt, gelesen, aktualisiert und gelöscht werden. Ich hoffe, du hattest bis jetzt Spaß
beim Lernen. Im nächsten Video
werden wir etwas Neues lernen. Sie leihen eine Übung aus.
17. Ermöglichen von Sicherheit auf Row Level: Hi, Willkommen zurück. Heute lernen wir
ein neues Konzept kennen , nämlich
eine Sicherheit auf Zeilenebene, auch bekannt als RLS. Rls ist eine Sicherheitsfunktion , mit der wir den Zugriff auf
Zeilen in einer Datenbanktabelle
anhand der
Identität oder Rolle eines Benutzers
steuern Zeilen in einer Datenbanktabelle können. In Superbus können wir RLS verwenden,
um einzuschränken, welche
Datenzeilen ein Benutzer sehen kann, basierend auf
vordefinierten Regeln
geändert werden . Bisher hatte jeder mit
dem öffentlichen API-Schlüssel
Zugriff auf unsere Datenbank. Denken Sie auch daran, dass das
Standardverhalten nach der Aktivierung der bidirektionalen
RLS-Tabelle darin besteht,
dass beim Abendessen jeder Zugriff verweigert ob der Benutzer
authentifiziert ist oder nicht. Bis wir unsere Richtlinien erwähnt haben. Jede Richtlinie wird an
eine Tabelle angehängt und ihre
Richtlinie wird ausgeführt. Jedes Mal, wenn auf eine Tabelle zugegriffen wird, können
Sie sich diese einfach so vorstellen als würden Sie jeder Abfrage eine
Where-Klausel hinzufügen. Die Tabelle kann
unterschiedliche IRLS-Richtlinien haben. Vielleicht möchten Sie, dass ein Tisch
produziert wird , ein anderer vielleicht nicht. Es liegt also an Ihnen, welcher Tabelle
Sie Zugriff gewähren möchten. Das reicht also für die Curie. Lass es uns aktivieren. Gehen Sie zum Superbus-Dashboard, gehen Sie zu unserer Cation. Dann können Sie hier die Richtlinien einsehen. Dann wird hier erwähnt, dass
RLS deaktiviert ist. Also klicken Sie einfach auf Enable RLS. Oh, okay. Wenn wir jetzt unsere App neu
starten, werden wir feststellen, dass
keine Daten angezeigt werden. Mal sehen, keine Daten verfügbar. Wir müssen Richtlinien schreiben. Und Richtlinien
ermöglichen es uns im Grunde,
festzulegen , wer Zugriff auf
welche Daten hat und welche Aktionen mit den Daten ausgeführt werden
können. Wir müssen Richtlinien
für alle Rohöloperationen schreiben. Das heißt erstellen, lesen,
aktualisieren, löschen. Und es ist sehr einfach. Klicken Sie in dieser To-dos-Tabelle
auf Neue Richtlinie. Danach
erhalten Sie zwei Optionen. Wir werden vorerst die Option „
Schnell loslegen“ wählen. Für eine erweiterte Option können
Sie sie sich später ebenfalls ansehen. Einfach hier klicken. Dann. Es gibt uns für die Politik. Aber zunächst
möchte ich Ihnen sagen, welche Richtlinien ich
für diese Anwendung haben möchte. Das heißt, für unsere Todos-App. Außerdem sollten Benutzer nur
auf seine eigenen Daten zugreifen oder diese lesen. Das bedeutet, dass die Benutzer-ID-Spalte
in der Superbase der Idee
der Person entsprechen
sollte , die die Anfrage
sendet.
Das ist das Erste. Zweitens sollten alle Benutzer Lage
sein, Daten zu erstellen, wenn
sie authentifiziert sind. Also wenn, wenn es
ums Einfügen,
Einfügen geht , ist jeder erlaubt. Gerade an diesem Tag
müssen sie authentifiziert werden. Und jetzt zum Aktualisieren oder Löschen sollten
Benutzer in der Lage sein, seine eigenen Daten auf Lead
zu aktualisieren oder zu löschen , also einfach so. Lesen Sie die Richtlinie. Die Spalte
mit der Benutzer-ID sollte der Idee
der Person entsprechen , die die Anfrage
sendet. Das war's. Nun nochmal zurück zu dieser Vorlage. Es gibt uns vier Möglichkeiten. Zuerst ist und es wird
Lesezugriff für alle, dann aktivieren Sie den Insert-Zugriff
für authentifizierte Benutzer auf. Die heutigen Versionen ermöglichen
Benutzern einen Bit-Zugriff auf der Grundlage ihrer
E-Mail und ihrer 40er Jahre. Und er hat den Löschzugriff für Benutzer auf der Grundlage ihrer Benutzer-ID zusammengefasst. Wir werden dies verwenden,
das heißt, der Zugriff basiert auf dem
Benutzer. Ich habe diese Vorlage erstellt Wir werden sie verwenden und ändern, um
sie der Einfachheit halber Verwenden Sie
einfach diese Vorlage. Jetzt. Es fragt uns nach Dingen. Der erste ist der Name der Richtlinie. Ich schreibe einfach Enable, Lesezugriff für Benutzer
anhand der Benutzer-ID. Dann. Zulässiger Betrieb, ich
wähle diesen aus. Und denken Sie daran, wenn Sie zwei Dinge können, aber Sie können nicht. Das ist hier, nur
einer nach dem anderen. Dann wächst das Ziel,
belassen Sie es einfach auf der Standardeinstellung auf all, da der Benutzer offensichtlich authentifiziert werden
muss. Jetzt mit Expression. Jeder sollte, wir sollten eine
Punkt-ID , die der Benutzer-ID entspricht, okay? Diese Benutzer-ID ist also der Spaltenname,
und
die R-Punkt-ID bedeutet
die Person, die die Anfrage sendet. Wenn ich nun versuche, auf Speichern zu
klicken, wird eine Adder-Funktion angezeigt, die
nicht erstellt werden kann. Eine seltsame ID existiert nicht. So sollte es nicht sein. Und es gab auch
noch einen anderen Fehler. Aber warte, ich mache es wieder. Sehen Sie hier, ob
das Gleiche gilt , wenn ich schreibe, Lesezugriff. Und wenn ich das nur ausgewählt hätte. Wenn ich nun schreibe, überprüfe, Safe-Policy und
sehe nun nach, dass der Operator nicht
existiert. Sie, UUIDs, gehen zu Tech,
da wir die Benutzer-ID erwähnt haben, dieser Wert als Text
in Supervision ist.
Denken Sie daran, dass
sein Wert Text ist. Sie können also entweder den
Spaltentyp zwei Ganzzahlen ändern
oder diese Änderung vornehmen, oder diese Änderung um sicherzustellen, dass sie so
funktioniert. Wenn ich jetzt auf
Richtlinie
überprüfen und speichern klicke ,
wurde die Richtlinie erfolgreich gespeichert. Aktivieren Sie also den
Lesezugriff für Benutzer anhand der Benutzer-ID. Mal sehen, ob unsere App
funktioniert oder nicht. Jetzt können wir auf unsere eigenen Daten zugreifen. haben wir erfolgreich gemacht. Sie neigen dazu, die
Zugriffsrichtlinien für unsere Datenbanktabelle zu lesen. Im nächsten Video schreiben
wir einfach die Richtlinie zum Einfügen,
Aktualisieren und Löschen. Und Q.
18. CRUD Richtlinien schreiben: Hallo. Jetzt müssen wir
diese Richtlinie für das Einfügen erwähnen. Und dafür werden wir
wieder auf Neue Richtlinie klicken. Dann legen Sie schnell los. Und hier
wählen wir die Vorlage Dann
fügen wir den Zugriff für authentifizierte Benutzer ein, um
nur diese Tabelle zu verwenden. Hier. Wir müssen nichts
weiter tun. Klicken Sie dann auf Richtlinie überprüfen
und speichern. Das heißt, wir haben gelesen, wir haben eingefügt. Jetzt oder aktualisieren. Wir werden den Zugriff wieder auf der
Grundlage der Benutzer-ID verwenden, also dieser Vorlage und des Datums für Benutzer. Und hier klicke ich auf Update. Es gibt uns ein anderes
Feld, das ist, das dasselbe sein wird. Und wieder, wie gesagt,
da es sich um eine Zeichenfolge handelt, muss
ich sie in eine
UUID konvertieren und sie kopieren und hier einfügen. Das war's. Es bedeutet einfach jedes Update der Benutzer auf der
Grundlage ihrer Benutzer-ID. Überprüfung, sichere Richtlinie. Okay. Nun zur letzten, erkundigen Sie sich
nach einer neuen Richtlinie,
wöchentlich oder verzögert. Jetzt ist es so, als würde man den Zugriff
für Benutzer anhand ihrer ID aktivieren. Verwenden Sie diese Vorlage. Alles ist okay. Einfach dieser. Denken Sie daran, diese UUID müssen
Sie nicht schreiben, wenn Sie die Spalte,
also die
Zeilennamen oder die Spalte,
als Ganzzahl und nicht als Zeichenfolge
in der Datenbank
erwähnt haben Zeilennamen oder die Spalte . Das war's. Verzögert K. Klicken Sie auf Überprüfen und Sicherheitsrichtlinie. Wir haben also alle
Richtlinien, wenn Chen, oder? Jetzt
funktioniert unsere App einwandfrei. Sicherheit auf Zeilenebene ist
eine sehr grundlegende Sache, aber sehr, sehr wichtig. Ich hoffe, Sie haben verstanden, dass, wenn wir eine
reale Anwendung entwickeln, dies alle Funktionen
sind, alles, was notwendig ist. Sicherheit ist das, was wir
in unserer Anwendung benötigen. Das ist es also. Für dieses Konzept. Im nächsten Video
werden wir anfangen, daran zu arbeiten. Also strombasierter Speicher, Enqueue.
19. Speicherkonfiguration: Hallo, willkommen zurück. Wir haben also etwas über
Authentifizierungsdatenbanken und Sicherheit
auf Zeilenebene gelernt . Jetzt ist es endlich an der Zeit,
dass wir verstehen, wie
Speicher in Supervision eingesetzt wird. In der heutigen Welt steht
Content an erster Stelle. Dann schauen Sie sich
Social-Media-Apps oder E-Commerce an,
überall
finden Sie diese Bilder und
Videos. Es ist also Zeit. Wir lernen auch, wie man
Dateien in unseren Speicher hochlädt. Als erstes müssen
wir einen neuen Bucket erstellen. Hier können Sie sehen, dass Bucket
ein Container ist , in dem
Dateien gespeichert werden. Jeder Bucket ist
mit einer eindeutigen URL verknüpft, die auf
die darin enthaltenen Dateien zugegriffen werden kann. Jeder Bucket kann über
eigene Berechtigungen verfügen, sodass Sie steuern
können, wer in ihn lesen und schreiben kann. Genau wie RLS. Wenn Sie eine
Datei in einen Bucket hochladen, erhält
sie automatisch eine eindeutige URL, über die Sie jederzeit auf
die Datei zugreifen können. Klicken Sie also einfach auf Bucket-Namen
erstellen. Ich werde einfach Benutzerbilder schreiben. Machen Sie es öffentlich
, damit wir später darauf zugreifen können. Und wir werden auch
Wertpapiere erwähnen, sodass es nicht
so viele Probleme geben wird. Jetzt haben wir also diese Benutzerbilder. Was wir auch brauchen, um
Richtlinien zu schreiben, genau wie wir es
bei Database Sex und
über Richtlinien oder Buckets gelernt haben, können wir Berechtigungen einrichten , die steuern, wer sie
lesen und schreiben darf. Sie erhalten zum Beispiel, Sie könnten einen Bucket
einrichten, auf den nur authentifizierte Benutzer
zugreifen können
oder der öffentlich zugänglich ist. Darüber hinaus können Sie Richtlinien für
Verstöße einrichten , die Dateien nach einem
bestimmten Zeitraum automatisch löschen. Klicken Sie nun auf Neue Richtlinie. Dazu
klicken Sie einfach auf Neue Richtlinie. Dann werden wir den
Schnellstart nutzen. Und es gibt uns fünf Optionen. Erlauben Sie den Zugriff auf
JPEG-Bilder in einem öffentlichen Ordner. Erlaubt Ihnen nur den
Zugriff auf ihren eigenen
Ordnernamen auf oberster Ebene. Als UID. Geben Sie Benutzern Zugriff auf
einen Ordner, indem Sie
authentifizierten Benutzern Zugriff gewähren. Gewähren Sie nur einem bestimmten Benutzer Zugriff auf einen
verschachtelten Ordner namens admin. Geben Sie einem Benutzer Zugriff auf f phi. Wir geben den Benutzern nur
Zugriff auf ihren eigenen Zugriff. Das ist der Ordnername der obersten Ebene, diese UUID, es ist UID. Verwenden Sie diese Vorlage hier. Wählen Sie zunächst alles aus. Hier. Es tut mir leid. Ich mache immer wieder einen wirklich dummen
Fehler. Aber die nächste Sache, die Verwendung von Löhnen und Steuern, hat sie in einer wirklich sicheren Politik gemacht. Das bedeutet also, dass in diesem Bucket ein Ordner erstellt
wird. Das heißt, jeder Benutzer
hat seinen eigenen Ordner. Sie werden es verstehen, wenn
wir anfangen, Bilder hochzuladen. Jetzt müssen wir auch
ein Paket installieren. Gehe zu pub.gov und
schreibe den File Picker. Ich wähle diesen aus. Gehen Sie einfach und kopieren Sie eine Abhängigkeit. Gehen Sie in die Pub-Spezifikations-Punkt-YAML-Datei. Unterhalb des Flüssigkeitspunkts ENV. Einfach einfügen und speichern. Es dauert ein bisschen. Wir werden aber weitermachen. Es ist erledigt. Bei Bedarf können Sie unseren Stopp und
Ihre Anwendung
neu starten, aber ich denke nicht, dass
dies erforderlich ist. Und auch für Android gibt
es keine Konfiguration. Wenn Sie jedoch
ein iOS-Gerät verwenden, können
Sie
hier in
der Dokumentation nachlesen , wie Sie es konfigurieren. Aber für unser Gerät ist
das Ding erworben.
Das ist es also. Im nächsten Video werden
wir mit der Arbeit an
der Upload-Funktion beginnen.
20. Implementierung von Upload: Hallo, lass uns
auf dem Upload-Bildschirm beginnen. Erstellen Sie eine neue Datei innerhalb von
Seiten und geben Sie ihr einen Namen. Upload. Seite Punkt, Punkt. Fangen Sie an, an der UA zu arbeiten. Importiere
Materialeingänge, Autobahnen, Florida. An Bord. Erstelle diesen
Staat inzwischen mit voller Vision. Wir könnten es einfach Upload
nennen, Alter. Und jetzt Kalb als Waffen, Superbus, Lager. Dann Körper. Lassen Sie es vorerst einfach
beim Behälter. Dann schwebende Aktionstaste. Schwebende Aktionstaste. Diese Schaltfläche wird
verwendet, um ein Fotosymbol hinzuzufügen. Ich kann anfangen und die Presse drücken, lass es
einfach vorerst. Und dann
erzeugt ganz oben einen Zustand zum Laden. Entladen ist gleich falsch. Gehen Sie jetzt zur Homepage
dot.in der AB-Leiste. Erstellen Sie eine neue Schaltfläche , um Bilder hochzuladen. Hier. Ich werde einen neuen Knopf haben,
da ich an Ort und Stelle zuknöpfen kann. Und ich kann sein, ich kann eine Datei hochladen. Und es sollte wie immer weg sein. Und in On-Premise
navigieren Sie einfach, navigieren Sie in ihrem Busch. Materialisiere es aus. Und laden Sie die Seite hoch. Das war's. Speichern wir es. Und sieh dir unsere App an. Es spart immer noch. Okay, wir haben dieses Symbol. Wenn ich darauf klicke, siehst du, das ist die Speicherseite. Jetzt ist es an der Zeit, an der Funktion zum Hochladen von
Bildern zu arbeiten. Supervise gibt uns eine
Upload-Funktion, die zwei Argumente
akzeptiert,
war dieser Dateiname. Und wir können in diesem Argument auch
die gefaltete Struktur,
in der wir sie
speichern wollen, in Superbus
verschachteln und erwähnen die gefaltete Struktur,
in der wir sie
speichern wollen . Das zweite Argument ist die Datei
, die wir hochladen möchten. Lass uns gehen, lass uns
zur Upload-Seite gehen. Ja, als Erstes
an Bord, nicht IO. Erstellen Sie dann eine Superbus-Instanz, Client-Instanz, wie folgt. Erstellen Sie dann eine Funktion. Zukunft. Dateisynchronisierung hochladen. Jetzt posten wir, indem wir die Dateiauswahlbibliothek
verwenden. File ist unglaublich ähnlich zu await. Von einer großen Plattform. Nicht auswählbare Dateien lassen mehrere, mehrere Stürze zu und sie
werden als Punktbild angezeigt. Wir werden vorerst den
Tab Datei unter Bild verwenden, natürlich genauso, wie
Sie jede Datei hochladen können. Jetzt schreiben wir
eine if-Anweisung, um zu überprüfen, ob der Benutzer eine Datei
ausgewählt hat oder nicht. Wenn die Datei nicht Null ist, dann ist nur der Status
des Uploads auf true gesetzt. Dann
versuchen wir es mit dem Catch-Block. In diesem Fahrbus. Es ist schwerer. Dateidatei ist gleich, wir müssen sie
in ein Dateiobjekt umwandeln,
Datei-Punktdateien erster Punktpfad. Und es wäre nicht Null,
da wir den If-Check haben. Dann fragst du vielleicht zuerst
weiß weil es uns die Liste der
Dateien gibt und wir wissen, dass wir nicht mehrere erlaubt
haben, also wähle einfach die
erste Datei aus, das war's. Dann
entspricht der Zeichenkettenname großen Datei- und Punktdateien. Vorname mit Punkt. Dann String-Upload. Uploaded URN entspricht await. Nun, das ist die Syntax
Superways Storage. Nicht aus unserem
Bucket-Namen stammen Benutzerbilder. Dann hier, wer ist die
Upload-Funktion? Und es
fragt nach Depth Bat. Denken Sie also daran, dass wir
einen Ordner mit dem Namen
dieser Benutzer-ID erstellen müssen . Ich hoffe, Sie erinnern sich
einfach daran , dass wir uns an die Richtlinien halten, die
wir so geschrieben haben. Der Supervisor ist keine Kunst, keine aktuelle Benutzer-ID. Dann habe ich einen Schrägstrich
und dann den Dateinamen. So wie das. Und das ist
eine Datei, die bereits aufgenommen wurde. Wenn Sie möchten, können Sie jetzt
einfach die hochgeladene URL ausdrucken. Und dann mache ich einfach set state is loading
ist gleich false, wird nicht geladen, es wird hochgeladen. Isabelle wird auf false hochgeladen. Und Gerüst den
Messenger of Contexts Snackbar, dass ich Datei erfolgreich hochgeladen
Datei hochgeladen habe. Vollständig geschlechtlich. Hintergrundfarbe, Farbe ist dunkelgrün. Und mach es einfach zur Konstante. Und in diesem Fang sag
einfach drucken. Im Moment ist es Debugging. Und wir werden Werbung drucken. Der Status festlegen ist das Hochladen von Dateien. Er lädt Musical auf false hoch. Und ähnlich ist bei Scaffold etwas schief gelaufen. Das war's. Nun, K Ja. Das ist auch
eine Desktop-Anwendung. Okay. Ich habe es nicht zugewiesen. Lass uns zum Upload gehen. Unser Funktionsname
ist Upload-Datei. Scannen Sie es hier. Wenn ich jetzt auf den Button klicke, denke
ich nur, was
wird hier hinzugefügt? Jetzt sind meine Daten da, aber auch im Floating Button. F zu tun, wenn das Hochladen wahr ist. Und gegen dieses Ziel. Fortschrittsindikator. Speichern Sie alles, versuchen Sie erneut, um zu sehen, was
die zusätzliche Ausnahme
durch fehlendes Plug-In-Hockey ist die zusätzliche Ausnahme durch fehlendes Plug-In-Hockey Lassen Sie uns
unsere Anwendung beenden und neu starten. Also habe ich bereits
mit meiner Bewerbung begonnen. Lass es uns noch einmal testen.
Klicken Sie auf die Schaltfläche. Jetzt fragt seine Lieferantenbasis, wir können es nur einmal zulassen. Verwenden Sie dann dieses Bild und speichern Sie
die erfolgreich hochgeladene Datei. Gehen wir nun zu unserem
Supervisor-Dashboard. Hier. Wenn ich es einfach neu lade, werden
Sie sehen, dass wir
dieses Benutzerbild haben. Und wir haben dieses Bild hier. Und das ist der Name
der Benutzer-ID. Das heißt, dies ist ein
Ordner mit der Benutzer-ID. Ich hoffe, Sie haben verstanden,
wie wir Bilder hochladen können. Pausiere einfach das Video und verstehe unseren Versuch, den Code zu
verstehen. Das ist einfach eine grundlegende Sache. Das erste, seit diesem
Upload der EXE-Datei, Datentyp Schuld, warum wir es in eine Datei
konvertiert haben. Dann haben wir den
Dateinamen und das war's. Im nächsten Video werden
wir die
hochgeladenen Bilder und Q patchen.
21. Fetch hochgeladene Bilder: Hallo. Jetzt ist es an der Zeit, dass wir die
hochgeladenen Bilder in Firebase abrufen. Wir können die Listenmethode
der
Storage-Dot-Bucket-Funktion verwenden , um
alle Dateien in diesem
Ordner von ihm auszuwählen . Die Bucket-List-Methode gibt eine
Liste der Dateien im Bucket zurück, die Sie dann
wiederholen können , um auf die
einzelnen Dateien zuzugreifen. Also nur um die Syntax
zu emulieren, die Syntax zum Abrufen von Bildern. Es ist einfach so. Endgültige Liste Dateiobjekt. Ergebnisse. Nehmen wir hier ein Gewicht an. Also Bobbys Aufbewahrung für Punkte. Von da an, aus Bildern, das ist der
Bucket-Name, Punktliste. Okay? Sie können hier einfach
den Bucket-Namen einfügen. Name des Buckets. Denken Sie also daran, dass wir
den Ordnernamen in
dieser Liste erwähnen können den Ordnernamen in , indem wir ein
Argument namens Math übergeben. Wie in unserem Beispiel erstellen
wir
Ordner nach Benutzer-ID. Also werden wir das nutzen. Lassen Sie uns die Funktion dunkel und
schreiben Sie die Funktion def. Erstellen Sie eine neue Funktion. Mein Name, holen Sie sich meine Ergebnisse. Endgültige Liste. Dateiobjekt. Das Ergebnis entspricht
Await Superbus. Superbus nichts. Naught H. Nichts vom Benutzerbild ist eine dunkle Liste. Okay? Das ist also die Luft, aber natürlich müssen Sie diesen Ordnernamen
erwähnen. Es wird die aktuelle
Benutzer-ID mit einem superklaren Punkt sein. Dieser Ordnername. Höhle. jetzt auch daran, Denken Sie jetzt auch daran, dass dieses Ergebnis
nicht die Bild-URL zurückgibt. Also hier, was ich
damit meine ist warten. Liste, obwohl ich nur ein
Balkenelement in das Ergebnis schreiben werde , das Element
drucken. Okay, lass es uns versuchen. Mal sehen, alles
von der Konsole verschieben. Wenn ich klicke,
habe ich
die Funktion offensichtlich nicht aufgerufen . Das glaube ich nicht. Wir haben hier einen Init-Staat. Okay, lass uns ein dummes Ziel angeben. Lass uns den Init-Status machen. Hol meine Akten. Wenn ich nun auf die Seite gehe, haben wir eine Instanz
des
Dateiobjekt-Elements C. Das ist es,
was es uns gibt. Bucket-ID, kuratierte Buckets, Metadaten, Name wie dieser. Aber es gibt
uns nicht die Bild-URL, also erhalten
Sie den Namen, Sie können den Namen, Entschuldigung,
ID und Namen
sowie Metadaten abrufen . Also wenn ich neu gestartet habe. Dann sehen Sie die
ETag-Größe und die Cache-Kontrolle. Alles ist die Anzeige und
nicht die Bild-URL. Dafür bietet uns
Supervise eine weitere Funktion, nämlich das Abrufen der öffentlichen URL. Ich
werde dir zeigen wie. Zuerst erstelle ich
eine leere Variable, die eine Liste von Zeichenketten sein wird. Meine Bilder sind wie diese. Dann kann es sich ändern. Im Ergebnis. Wir haben inzwischen, Sie erhalten eine URL, die
gleich ist. Jetzt hier. Von hier aus ist
unser Supervisor nicht von, nicht vom Benutzer. Bilder. Nicht bekommen. Lass uns sehen, was los ist. Okay, ich habe den Speicher vergessen. Was für ein dummer Fehler. Dot-Benutzerbilder erhalten eine öffentliche URL. Siehst du. Jetzt werden
wir nach dem Teil der Bildleiste gefragt
, den wir benötigen. Erstens der Ordner
, der so allgegenwärtig ist,
Punkt, Punkt, aktuelle Benutzer-ID. Und wenn Sie möchten, können
Sie auch einen
Anbieter wie das
State Management verwenden und diese Idee
und alles dort speichern. Im Moment mache ich
es nur auf eine sehr einfache Weise. Und denken Sie daran, dass wir
den Bildnamen bekommen. Es ist also wie ein
Bildpunktname, so. Daraus erhalten wir die URL, die verwendet werden kann
,
um Innovationen zu zeigen. Okay? Und mal sehen, ob es
die Zukunft ist oder nicht. Nein, das ist nicht die Zukunft. Also kann ich das Gewicht einfach
abnehmen. Und hier werde ich
diese Informationen zu den
obigen Informationen bei EMTALA hinzufügen . Als Erstes werde ich auch den Namen
speichern, damit er später zum
Löschen verwendet werden
kann, Zweck löschen. Und URL wird reichen und die URL wie folgt
abrufen. Und zum Schluss werde ich meine Bilder
zurückgeben. Und wenn Sie möchten, lassen Sie uns zuerst drucken, ob
es funktioniert oder nicht. Meine Bilder sind variabel. Und mal sehen, ich
gehe einfach nochmal auf diese Seite. Und siehe Bildname ist
das, URL ist das. Das heißt, wir
erhalten die Informationen. Das ist die öffentliche URL. Jetzt ist es an der Zeit, dass wir zeigen, dass die
Bilder in der Benutzeroberfläche, die sich
hier im
Hauptteil befindet , nur ein Container waren. Das wird sich ändern. Jetzt schreiben wir Future Builder. Dein Stuhl. Wir haben diese
Zukunft und bekommen meine Akten. Kontext, ein Senk-Snapshot. Momentaufnahme. Wenn Snapshot Dot nun Daten hat, dann mach etwas anderes. Rendite ist ein zirkulärer
Fortschrittsindikator. Indikator. Wenn der Snapshot Daten enthält , überprüfen wir
zunächst, ob. Momentaufnahme. Daten. Punktlänge ist, wenn
sie gleich Null ist, das heißt, es wird kein Bild hochgeladen. Dann Anleihen zurückgeben, Text in der
Mitte, keine Bildbeschriftung. Und wenn das nicht der
Fall ist, dann kehre zurück. Lass uns das machen. Widget. Und denken Sie daran, Sie können auch den Builder
verwenden, aber ich verwende ein anderes
Widget, das als Separated bekannt ist,
sodass
ich zwischen
allen Elementen eine Trennung von habe, das heißt, ich habe sie als Trennzeichen
unterteilt. Dies ist eines der
Widgets in Clutter. Ich rechne, dass das da ist, aber ich werde zuerst schreiben. Separator wird lernen. Es hat auch Texte und einen Index. Wir geben einfach einen
Konstantenteiler wie diesen zurück. Von der Dicke zur Farbe. Die Farbe ist dunkelschwarz. So wie das hier. Dann
lernen wir es. Wiederum dasselbe
beim nächsten Index. N. Ich werde den Data Map Image Data Snapshot-Datenindex abrufen. Ich speichere
hier nur den Kartenwert aus dieser Liste nacheinander. Und gib eine Zeile zurück, was bedeutet, dass überschüssige Elemente zugänglich
bleiben. Und das Mendota Center und die
Kinder werden Pudding essen. Die erste ist die Größe der Box. Hier. Es wird üblich sein. Die Box, das ist, das wird das Bild sein. Ich gebe ihm nur die Höhe. Es dehnt sich nicht auf alle oder weniger Stöcke aus und
hat später keine Probleme. Bildpunktnetzwerk. Jetzt hier, Hauptbilddaten, URL, Feld, Punktcover. Und nach diesem großen Feld in dieser Zeile werde ich eine Symbolschaltfläche
haben. Ich kann sein, ich kann bequem Farben löschen, Rot, 0, Schlüssel. Und ich werde diesen
Init-Status vorerst entfernen. Ich hoffe alles Wir werden funktionieren. Jed ist,
schauen wir uns unsere Bewerbung an. Ich klicke auf diese Schaltfläche
und sehe, dass das Bild in unserer App
angezeigt wird. Ich werde diese Listenansicht nur erweitern
. Das war's. Beim Hinzufügen
wird eine konstante Kante punktsymmetrisch eingefügt. Was sie können. Dann so. Siehst du, das ist unser Bild. Ich hoffe alles ist okay. Lass uns ein weiteres
Bild hochladen. Lass uns sehen. Ich werde diesen Virus benutzen. Siehst du, wir haben
auch diesen Teiler und wir haben hier
zwei Bilder, die großartig aussehen. Wir haben auch den Teil des
Abrufs von Bildern erledigt. Im nächsten Video werden
wir an
dieser Schaltfläche zum Löschen arbeiten. Und dann haben wir alles getan ,
um in Superbus zu lernen. Ich danke dir.
22. Bildfunktion löschen: Hallo, willkommen zurück. Lassen Sie uns nun an
der Löschfunktion
des Speichers arbeiten . Auf Autobahnen. Wir haben DUS, entferne meine Technologie, um
eine Datei aus dem Bucket zu löschen. Schreiben Sie also einfach eine Syntax
, um sich an ihrem sehr einfachen
Slipfinal-Listenobjekt zu orientieren. Also gibt es uns auch diese
gelöschte Datei zurück. Superways, dots, storage, bucket, name, dot remove this, remove x und füge einen Parameter mit den
Dateinamen in diesem Bild hinzu, ein Punkt-PNG, wie dieses. Und wenn wir wollen, können
wir auch erwähnen, dass der
Ordnername hier ein Haar ist. In unserem Fall
wird es erledigt und die Benutzer-ID. Lass es uns erstellen. Hier. Ich werde den Druck entfernen, wird in Zukunft nichtig sein. Ich möchte nichts zurückgeben, was breit ist, lösche das Bild. Und es wird einen Zeichenkettennamen annehmen, das ist der Bildname. Geben wir den Try Catch ein. Der Fangblock.
Ja, das stimmt. Super Möglichkeiten. Punkte, Speicherpunkt
aus Benutzerbildern. entfernen. Ja. Du
musst einen Teil aufschreiben. Teil wird aus Super-As bestehen, die nicht die aktuelle Benutzer-ID plus und den Bildnamen enthalten. Sie können auch die
Zeichenketteninterpolation verwenden. Aber jetzt schauen wir mal,
ob es Arbeit ist oder nicht. Dann schicke ich einfach Daten, aktualisiere die Seite, damit
unsere Zukunft stirbt. Zeigt uns die neuesten Bilder. Und wenn es einen
Fehler gibt, dann ist Kontexte, Snackbar, einfach
etwas schreiben, schief gelaufen. Das war's. Wir müssen diese Funktion
verwenden, um sie hier in der Icon-Schaltfläche
aufzurufen. Wie Knoblauch, Bildname, Bildname, und es wird der Name sein. Ja, wir haben ihm einen Namen gegeben. Lass es uns machen. Speichern wir es und holen
wir unsere App heraus. Wir gehen da hin. Und wenn wir
das unter Aufsicht gemacht haben, wenn ich darauf klicke, sehe ich, dass es jetzt auch
aus dem Speicher gelöscht wird. Also, wenn ich es aktualisiere, mal sehen, ich denke, es wird der Film sein, ja, nur für ein Bild
ist die Bearbeitung. Unsere Löschfunktion
funktioniert ebenfalls einwandfrei. In einfachen Worten, wir haben
diese vollständige Anwendung, sehen Sie, sie wurde gerade getestet. Schließlich, wenn ich das mache, dann werde ich einfach Projekte machen. Klicken wir nun auf Erstellen. Einfügen funktioniert. Dann haben wir die reale Welt. Und wenn ich es auf Schwarz ändere, ist
es offensichtlich auch
falsch, aber es funktioniert. Und dann geh und lösche es
auch. Habe es gelöscht. Dies ist das
Crud-Operations und Arena
hat auch etwas über die Sicherheit
auf Zeilenebene gelernt. Wir haben auch eine
Authentifizierung durchgeführt. Und nochmal, wenn ich
es hochlade. Wie Sie sehen können, der Upload auch
einwandfrei. Und ich melde mich einfach ab. Also danke, dass du der Lee und ich hoffe, dich auch in
meinen zukünftigen Kursen zu sehen. Also bis dahin, arbeite einfach weiter
hart und übe weiter.