Aufbau eines Mitarbeiteranwesenheitssystems mit Flutter und Supabase | Rahul Agarwal | Skillshare

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Aufbau eines Mitarbeiteranwesenheitssystems mit Flutter und Supabase

teacher avatar Rahul Agarwal, Flutter Developer & Trainer

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Einführung in den Kurs

      1:14

    • 2.

      Ein Flatter-Projekt erstellen

      6:58

    • 3.

      Supabase-Client initialisieren

      9:44

    • 4.

      Einen Anmeldebildschirm erstellen

      8:18

    • 5.

      Einen Registrierungsbildschirm erstellen

      6:49

    • 6.

      Auth-Service-Klasse erstellen

      5:30

    • 7.

      Methode zur Registrierung eines Mitarbeiters

      4:39

    • 8.

      Methode zum Anmelden und Abmelden

      3:56

    • 9.

      Methoden der UI zuweisen

      8:27

    • 10.

      Benutzermodell und DB-Tabellen erstellen

      10:09

    • 11.

      Erstellen von Datenbankservice-Kursen

      9:06

    • 12.

      Umgang mit dem Autorisierungsstatus des Benutzers

      5:33

    • 13.

      Auf dem Home-Bildschirm arbeiten

      11:59

    • 14.

      An der Anwesenheits-UI arbeiten

      5:53

    • 15.

      Folie zum Einchecken implementieren

      10:25

    • 16.

      Funktion Nutzerdaten abrufen

      13:34

    • 17.

      Anwesenheitstisch und Service-Kurs

      8:28

    • 18.

      Funktion zur Kennzeichnung der Anwesenheit

      15:51

    • 19.

      Funktion zum Abrufen der Anwesenheitshistorie

      7:37

    • 20.

      Arbeit an der Benutzeroberfläche

      10:37

    • 21.

      Die Verlaufsdaten anzeigen

      11:43

    • 22.

      Funktion zum Abrufen des Standorts des Mitarbeiters

      10:38

    • 23.

      Standort des Geschäfts beim Check-in

      9:04

    • 24.

      Funktion, um alle Abteilungen zu erhalten

      6:58

    • 25.

      Funktion zur Aktualisierung von Profildaten

      7:27

    • 26.

      Dropdown-Menü zur Auswahl der Abteilung

      11:20

    • 27.

      Arbeit am Abmelden

      4:45

    • 28.

      Richtlinien für die Anwesenheitstabelle

      9:16

    • 29.

      Tabelle der Richtlinien für die Abteilungen

      2:39

    • 30.

      Richtlinien für die Tabelle der Mitarbeiter

      4:39

    • 31.

      Die vollständige Anwendung testen

      3:50

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

360

Teilnehmer:innen

2

Projekte

Über diesen Kurs

Willkommen zum umfassenden Kurs über den Aufbau eines Mitarbeiter-Anwesenheits-Management-Systems mit Flutter und Supabase!

In diesem Kurs lernen Sie, wie Sie ein funktionsreiches Mitarbeiteranwesenheitsmanagementsystem mit dem beliebten plattformübergreifenden Framework Flutter und Supabase erstellen, einer Open-Source-Alternative zu Firebase für die Datenspeicherung und -verwaltung. Sie werden mit dem Aufbau eines robusten Authentifizierungssystems beginnen, das es Mitarbeitern ermöglicht, sich mit ihren E-Mail-Daten und Passwörtern zu registrieren und anzumelden.

Mit Flutter und Provider werden Sie dann eine benutzerfreundliche Oberfläche erstellen, die es Mitarbeitern ermöglicht, einfach zu gleiten, um für den Tag einzuchecken und auszuchecken. Die Anwendung ermöglicht es den Mitarbeitern auch, ihren Anwesenheitsverlauf für jeden Monat des Jahres einzusehen, ihre personenbezogenen Daten und ihre Abteilung zu aktualisieren, während sie gleichzeitig ein effizientes Statusmanagement mit Provider aufrechterhalten.

Dieser Kurs soll Sie mit den Fähigkeiten und Kenntnissen ausstatten, die Sie für die Erstellung einer Anwendung benötigen, die die Anwesenheitsverfolgung und -verwaltung für jede Organisation rationalisiert. Nach Abschluss dieses Kurses werden Sie über ein voll funktionsfähiges Anwesenheitsmanagementsystem verfügen, das Sie in Ihrem Portfolio potenziellen Arbeitgebern vorstellen können, indem Sie Ihre Kompetenz bei der Entwicklung robuster und reaktionsfreudiger mobiler Anwendungen mit Flutter, Supabase und Provider unter Beweis stellen.

Egal, ob Sie ein Anfänger oder ein erfahrener Entwickler sind, dieser Kurs führt Sie durch jeden Schritt des Aufbaus eines effizienten Mitarbeiteranwesenheitsmanagementsystems unter Verwendung der neuesten Entwicklungstools und Best Practices. Melden Sie sich also jetzt an und beginnen Sie Ihre Reise zu einem hochqualifizierten Entwickler mobiler Anwendungen!

Triff deine:n Kursleiter:in

Teacher Profile Image

Rahul Agarwal

Flutter Developer & Trainer

Kursleiter:in

Hello, I'm Rahul. I am skilled in building cross platform application using Flutter. I am freelance developer as well as conduct workshops to share my knowledge with the community.

Vollständiges Profil ansehen

Level: Intermediate

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Einführung in den Kurs: Interessieren Sie sich dafür, eine reale Anwendung mit Zahnstein zu erstellen , oder möchten Sie potenzielle Arbeitgeber mit Ihren Fähigkeiten zur mobilen Entwicklung beeindrucken und Ihren Traumjob bekommen, dann ist dieser Kurs genau das Richtige für Sie. Es wird Ihnen beibringen, wie Sie ein voll funktionsfähiges Anwesenheitsmanagementsystem mit Unordnung erstellen ein voll funktionsfähiges Anwesenheitsmanagementsystem mit und mit einem Anbieter als staatlichem Management-Tool beaufsichtigen . Supervisor ist eine Open-Source-Alternative zu Firebase und erfreut sich in der Tech-Community großer Beliebtheit. Wir werden mit dem Aufbau eines robusten Authentifizierungssystems beginnen, das es den Mitarbeitern ermöglicht, sich mit ihrer E-Mail-Adresse und ihrem Passwort zu registrieren und anzumelden. Anschließend erstellen wir eine benutzerfreundliche Oberfläche, die es den Mitarbeitern ermöglicht, einfach zum Ein- und Auschecken für den Tag zu wechseln. aktuelle Standort des Mitarbeiters wird ebenfalls gespeichert , sodass bestätigt wird, dass er oder sie sich in der Dunkelheit befindet. Die Anwendung wird auch Funktionen implementieren , die es den Mitarbeitern ermöglichen, ihre Anwesenheitshistorie für jeden Monat des Jahres einzusehen für jeden Monat des Jahres , ihre persönlichen Daten sowie die Unternehmensabteilung zu aktualisieren sowie die Unternehmensabteilung und gleichzeitig eine effiziente staatliche Verwaltung mithilfe des Anbieters aufrechtzuerhalten . Am Ende des Kurses verfügen Sie über ein vollständiges Anwesenheitsmanagementsystem , das Sie in Ihrer eigenen Organisation verwenden oder Ihr Portfolio präsentieren können Ihrer eigenen Organisation verwenden oder Ihr Portfolio präsentieren , ohne weitere Zeit zu verschwenden. Lass uns anfangen. 2. Ein Flatter-Projekt erstellen: Hallo, willkommen zum allerersten Video des Kurses, in dem wir mit Flutter und Superbus ein Anwesenheitsmanagementsystem für Mitarbeiter aufbauen werden ein Anwesenheitsmanagementsystem für Mitarbeiter . Ich gehe davon aus, dass Sie sich bereits mit Unordnung auskennen. Und wenn es um die Überwachung geht, sind diese Quiet Is sehr einfach und unkompliziert wie Firebase. Wenn Sie sich also mit Firebase auskennen, es Ihnen nicht schwer fallen. Außerdem werde ich das Provider-Paket als Tool zur Staatsverwaltung in unserem Projekt verwenden das Provider-Paket als . Sie sollten auch über Schulden Bescheid wissen. also, ohne weitere Zeit zu verschwenden, Lassen Sie uns also, ohne weitere Zeit zu verschwenden, mit der Erstellung eines neuen Florida-Projekts beginnen. Gehen Sie in das gewünschte Verzeichnis und öffnen Sie Ihr Terminal. Dann der Befehl, Flutter. Erstellen Sie ein Anwesenheitszentrum für Mitarbeiter. Natürlich können Sie einen beliebigen Projektnamen verwenden. Es liegt an dir. Dann öffne dein Terminal. Entschuldigung, öffne deinen Code-Editor. Ich werde VS Code verwenden. Dann. Ben, dein Projekt. Unser Projekt ist erstellt. Jetzt ist es an der Zeit, dass wir ein beaufsichtigtes Konto einrichten. Öffnen Sie Ihren Browser und geben Sie supervise.com ein. Das ist also die offizielle Seite hier. Klicken Sie auf Anmelden. Und natürlich habe ich direkt unterschrieben, weil ich mich bereits früher mit meinem GitHub-Konto angemeldet habe. Sie werden auf jeden Fall die Möglichkeit haben, Sie werden auf jeden Fall die Möglichkeit sich mit Ihrem GitHub-Konto anzumelden. Sie geben einfach Ihre Anmeldeinformationen und dann werden Sie auf diese Seite weitergeleitet. Hier. Klicken Sie einfach auf Create Project. Denken Sie auch daran, dass Sie eine Organisation benötigen, um ein neues Projekt zu erstellen . Also ich muss nämlich reisen. Sie erhalten dort die Option, es einfach zu benennen. Hier lautet der Projektname nun Anwesenheit der Mitarbeiter. Ich werde einfach ein zufälliges Passwort generieren. Wählen Sie jedoch den nächstgelegenen Grund. Und der Preisplan wird kostenlos sein. Nach dieser Zeit richtet es das Projekt ein. Bringen Sie einfach Ihren VS-Code heraus. Und hier im neuen Terminal werde ich einfach diese Kombinationsdaten schreiben. Bob, füge Superways hinzu, immer lauter, Punkt ENV. Dies sind die Pakete , die benötigt werden. Sie können auch zu Bob Dot Dev gehen und sich diese Pakete ansehen. Zum Platzen wird Flattern verwendet, um mit den Aufsichtspersonen zu interagieren. Und dieser Punkt ENV wird verwendet , damit unsere Passwörter nicht kompromittiert werden. Wir werden das Passwort nicht direkt in die Hauptdatei schreiben oder auf die Bildschirme, so. Wir werden einfach den Pub-Spezifikationspunkt YAML überprüfen und sehen. Wir haben diese beiden. Wir müssen das installieren. Jetzt. Im Stammverzeichnis unserer App. Erstellen Sie einfach eine Datei und nennen Sie sie dot ENV. Stellen Sie sicher, dass Sie dies nicht darin erstellen. Sie müssen im Stammverzeichnis erstellen. Und hier speichern wir die Superbus-Anmeldeinformationen wie evaulate Die Superbasis-URL entspricht diesem und die Superways k ist gleich. Dann. Gehen Sie hier zum Dashboard, klicken Sie auf Projekteinstellung und dann auf API. Und hier können Sie die URL sehen, kopieren Sie sie und fügen Sie sie hier ein. Und dann kopiere das. Und auf den öffentlichen Schlüssel und füge ihn in diesen Schlüssel ein. Das war's. Sehen Sie, Sie haben die Details hier direkt kopiert und eingefügt. Danach. In dieser Pub-Spezifikations-Punkt-YAML-Datei müssen wir diese Punkt-ENV-Datei im Asset-Abschnitt erwähnen . Also geh hier runter. Es ist einfach unkommentiert. Denken Sie daran, dass diese Pub-Spezifikations-Punkt-YAML-Datei sehr zwischen Groß- und Kleinschreibung unterscheidet, sodass jedes zusätzliche Leerzeichen oder Tabulator ein C ergibt Sie müssen so sehr vorsichtig sein, genau wie Punkt ENV und speichern Sie es. Okay, das war's für dieses Video. Im nächsten Video werde ich unseren Superbus initialisieren und die Anwendung ausführen. Danke. 3. Supabase-Client initialisieren: Hallo, lass uns weitermachen. Da wir also Abhängigkeiten installiert haben, müssen wir auch Android konfigurieren . Also geh zu Android, dann zu App. Und hier drin haben Sie die aufgebaute Gradle-Datei. Hier. Zuerst. Sie haben diese billige SDK-Version. Mach 33 draus, so. Dann haben Sie eine Mindestversion des SDK. Ja, ja, hier. Mach 19 draus. Und ermöglichen Sie auch mehrere Jahrzehnte. Mit dieser Zeile. Wenn Sie Firebase bereits konfiguriert haben, wissen Sie, dass diese jedes Mal erforderlich sind. Außerdem gehe ich einfach zur Android-Quelle, dem Android-Hauptmanifest , und ändere das Android-Label auf Ban. Das wird also der App-Name sein, oder Sie können sagen, dass dies das Mitarbeiterverwaltungssystem für ein Unternehmen namens Fang ist. Das ist okay. Dann müssen wir diesen Supervise-Client innerhalb unserer Hauptfunktion initialisieren . Also gehe hier zum Main. Ja, mach einfach ein Waschbecken draus. Dann sind sie wie Rigids bindend und werden initialisiert angezeigt. Laden Sie dann zuerst ENV-Dateien. Das werde ich sofort tun. Und ich werde zuerst Punkt ENV importieren und Superbus Flutter so importieren. Und hier schreibe ich einfach den Befehl dot ENV dot load. Es wird also die ENV-Punkt-Datei mit Stunden laden. Und dann werde ich Supervise initialisieren. Zuerst erhalte ich einfach Dow-URL im Schlüssel in einer separaten Variablen Hier schreibe ich einfach Punkt ENV, Punkt ENV. Hier. Wir müssen den Schlüsselnamen schreiben. Wenn du das weißt. Das ist der Schlüssel für die Daten. Also werde ich das einfach schreiben und es kann null sein. Also stelle ich einfach sicher, ob es Null ist, und gebe ihm dann den Wert einer leeren Zeichenfolge. Dann ist der Supervisor entscheidend. Hier. Es ging um Whiskey. Danach initialisiere ich mit dem Code Supervise, nicht initialisiere. Dann müssen wir hier die URL angeben, die hervorragend cURL ist. Jeder Schlüssel wird sehr riskant sein. Das war's. So initialisieren wir Superbus. Das ist sehr einfach. Danach werden wir unser Projekt strukturieren. Ich werde das und Android einfach schließen. Und in lib werden wir unser Projekt in Ordner strukturieren , anstatt alles auf einen Stapel zu schreiben. Erstellen Sie also einen neuen Ordner namens screens in lib. Erstellen Sie dann einen weiteren Ordner namens Constance. Noch ein Ordner, du kassierst, also Models. Und schließlich haben wir Dienstleistungen. Das ist also eine bessere Art, Code zu schreiben. Und Einblicke. Greens, erstelle eine Datei. Anmeldebildschirm Punkt, Punkt. Lassen Sie uns zunächst Material importieren und ein Stateful-Widget erstellen. Login-Bildschirm. Ja, ich gebe ein Gerüst zurück. In diesem Körper. Es war einfach geschrieben. Es funktioniert. Und in der Domäne Punkt Punkt. Einfach. Zuerst werde ich diese Kommentare entfernen und alles von hier entfernen. Das ist von der Klassenhomepage. Entferne alles und gib dem Home den Login-Bildschirm als Wert. Speichern. Alles. Danach starte ich meinen Pixel Five Android-Emulator. Sie können auch Ihr physisches Gerät anschließen . Es liegt an dir. Und ich werde versuchen, diese Anwendung auszuführen. Lassen Sie uns nun sehen, ob wir laufen oder ob es einen Editor gibt. Dies ist das erste Mal, daher kann es einige Zeit dauern. Also bis dahin, wenn du willst, kannst du einfach zum Superbus Flirted Darks gehen. Hier. Und hier. Du kannst, du kannst viel Lob sehen oder du kannst es verstehen, wenn du keine Ahnung von Superbus hast. Lass uns sehen. Was haben wir keine anderen Hunde? Ja. Hier haben Sie alle Abfragen, wie man Daten abruft, einfügt, wie man sich anmeldet, wie man Speicher erstellt und auch diese URL wird für Sie hilfreich sein. Das wird sich als nützlich erweisen. Stellen Sie sicher, dass Sie Freizeit haben, Sie lesen hier alles. Ich habe eine Lizenz und alles , was akzeptiert werden muss. Deshalb dauert es einige Zeit. Das ist in Ordnung. Wir können warten. Siehe Dapp. Und jetzt ist der Bildschirm, er funktioniert, da. Das bedeutet, dass unsere App perfekt funktioniert. Ich ändere hier einfach diesen Titel in Mitarbeiterbeteiligung und das Debug-Banner in False. Das war's. Das war's für dieses Video. Im nächsten Video werden wir an der Benutzeroberfläche des Anmeldebildschirms arbeiten. Danke. 4. Einen Anmeldebildschirm erstellen: Hallo, willkommen zurück. In diesem Video werden wir also Arbeit an der Benutzeroberfläche des Anmeldebildschirms beginnen. Das ist also der Bildschirm, auf dem Mitarbeiter in ihr Unternehmen einloggen können, das ich Pang, f, a und g genannt habe . Also lasst uns anfangen. Zuallererst werden darin Variablen erstellt, werden darin Variablen erstellt um die Breite und Höhe des Geräts zu ermitteln. Also einfach doppelt. Bildschirmbreite entspricht der Medienabfrage, die Dot Off-Kontakte haben sollten, sie sind nicht von Kontakten. Punktgröße, Punktbreite. Und in ähnlicher Weise kopiert, eingefügt. Es wird immer grüne Höhe geben. Und das wird hoch sein. Lass uns jetzt anfangen. Fangen wir mit Win an. In diesem Körper werde ich eine Spalte verwenden, die ersten Chao-Behälter für Kinder darstellt. Höhe des Containers entspricht der grünen Grundhöhe geteilt durch drei. Das Gewicht des Containers entspricht der Bildschirmbreite. Lassen Sie uns eine Erklärung abgeben. Const Box, Dekoration, Farbe, Farben, Rot, Akzent. Dann Grenze. Der Radius wird der Randradius sein, kreisförmig. Es sollte es sein, es sollte nur sein. Dann hier drinnen, oder? Unten rechts. Es wird ein kreisförmiger Radius von 70 sein. Okay? Und in diesem Container haben wir das Eigentum des Kindes. Es wird, wieder über die Spalte Ich gebe ein zufälliges Symbol und zuerst bleibt es existent Alignment main excellent Mendota Center , sodass das Kind aus diesem Container geschickt wird. Und dann haben wir, dass Kinder von Teichen zu schätzen sein werden , dann kann ich den QR-Code-Scanner starten. Du kannst einen QR-Code schreiben oder du kannst geben, was ich will. Weniger Punkte weiß, Größe pro Tag. Geben Sie uns dann die Größe der Felsen mit der Höhe, dy und geben Sie dann den Text des Firmennamens an. Ich werde es tun. Fang-Stil. Textil Die Größe der Anleihen wird 25 betragen. Die Farben sind weiß. Schriftstärke, Schriftstärke, fett. Rette alles. Lass uns auschecken. Siehst du, es sieht nach Abstieg aus. Wir haben hier diesen unteren Radius. Dies ist, dass die Containergalerien rot X und Sie können die Farbe nach Ihren Bedürfnissen ändern. Dann haben wir in diesem Kind in einer Spalte, in der ich Text landen kann , der sich in der Mitte befindet da wir die Ausrichtung der Hauptachse als Mittelpunkt angegeben haben. Danach müssen wir zwei Texte erstellen, irgendeinen Controller für diese Textfelder. Für sie, Login-Zweck. Gehen wir also hier in diese Klasse und schreiben den endgültigen Textbearbeitungscontroller. E-Mail-Steuerung fähig zum Textbearbeitungscontroller. In ähnlicher Weise haben wir auch den Textbearbeitungscontroller für das Passwort. Der Passwort-Controller ist so, dass sie alles machen, was sie kontrollieren. Dann innerhalb des Spalten-Widgets. Erstellen Sie hier ein weiteres Spalten-Widget mit etwas Polsterung. Also unten, lass uns sehen. Wir haben dieses Spalten-Widget, es endet hier. Geben Sie dann eine Abstandsgröße an, Boxhöhe 50 als die Tiefe. Durch Hinzufügen eines Widgets. Ich gebe an, dass die Polsterung 20 beträgt. Und ich liebe die Polsterung, die eine Spalte sein wird. Jetzt haben wir diese Kinder. Darin werden Kinder dieses Textfeld haben. Deklaration, Const-Eingabedeklaration. Die Bezeichnung wird Text sein. Mitarbeiter, E-Mail, ID. Korrigieren. Ich kann, ich kann, ich kann eine Person starten. Sie können einer Person schreiben, Sie können E-Mails schreiben, was auch immer Sie wollen. Rahmen, Umriss, Eingaberahmen. Dann haben wir die Controller-Option außerhalb der Deklaration und wir geben ihr den E-Mail-Controller. Und nach diesem Textfeld geben Sie etwas Abstand ein. Größe, Kartonhöhe 20. Lass uns alles speichern. Sie können den Code sehen und jetzt sehen, dass wir die E-Mail-ID des Mitarbeiters wie folgt haben. Das war's also für dieses Video. Im nächsten Video werden wir diesen Anmeldebildschirm vervollständigen und den Registrierungsbildschirm erstellen. Ich danke dir. 5. Einen Registrierungsbildschirm erstellen: Lassen Sie uns weiter am Anmeldebildschirm arbeiten. Unterhalb dieses Größenfeldes. Erstellen Sie einen weiteren Text. Sie können diesen Text einfach kopieren und einfügen. Hier. Es wird ein Passwort sein. Ich kann Solvay, ich kann Glück anfangen. Der Controller ist der Passwort-Controller und verdeckter Text ist wahr. Das heißt, was auch immer wir eingeben sollte niemand anderem gezeigt werden. Es wird wie Sterne kommen. Unter diesem Text werden einige Abstände angegeben. Größe der Schachtel, Höhe 30. Und dann lass es uns drücken. Geben Sie ihm eine Schachtelgröße. Seine Höhe wird 60 betragen, was einer Unendlichkeit von Doppelpunkten entspricht. Das Kind wird angehoben. Der in der Schaltfläche geschriebene Text ist Login. Und wir werden ihm auch ein wenig technisches Styling geben. Schriftgröße 20. Mach es konstant. Dann verleihen Sie auch der erhöhten Schaltfläche etwas Stil. Also hier, wie beim erhöhten Zehn-Punkt-Stil geben Sie der erhöhten Schaltfläche Stil. Die Hintergrundfarbe wird aus Farben bestehen, die einen roten Akzent setzen. Und die Form wird abgerundet sein. Rechteckiger Rand, Randradius, Randradius. Rundschreiben heute. Das ist nur, es sollte am Ende des Arguments stehen. Das war's. Lass es uns überprüfen. Siehst du, der Button sieht auch gut aus. Jetzt ist es soweit. Wir erstellen einen weiteren Bildschirm für die Registrierung. Bewerten Sie also auf dem Bildschirm einfach den registrierten Bildschirmpunkt. Dies ist also offensichtlich die Seite neue Mitarbeiter registrieren, kopieren und den Code vom Mitarbeiterbildschirm hier einfügen können . Dann ändern wir einfach zuerst den Namen auf dem Bildschirm. Okay? Jetzt, hier im Gerüst, werden wir einen MBA haben, damit wir auch den Zurück-Button zeigen können. Schreiben wir einfach AB-Balken, Hintergrundfarben, den roten Akzent, Höhe Null. Und ich werde einfach die Höhe ändern , um sie mit der App-Leiste anzupassen. Und zum Schluss, in den Button, schreibe ich hier registrieren. Das war's. Nur diese drei Änderungen. Speichern. Jetzt haben wir auch den Registrierungsbildschirm. Gehen wir nun vom Anmeldebildschirm aus zum Registrierungsbildschirm. Gehen Sie also zur Punktdatei des Anmeldebildschirms. Hier. Unter dieser großen Schachtel. Ich gebe bei diesem Größenfeld D etwas Abstand Lassen Sie uns nun einen Text-Button erstellen , der zu dem Register-Bildschirm navigiert . Also füge ich einfach Text hinzu. Sind Sie ein neuer Mitarbeiter, der hier registriert ist? Und navigieren Sie in der Bewertung vor Ort in ihrem Busch. Ich hoffe, Sie kennen diese Befehle bereits. sind die Grundlagen für die Navigation im Jetzt müssen wir nur Text hier schreiben und wir werden ihn wie folgt an diesen Registerbildschirm senden . Und das ist eine Konstante. C. Speichern Sie alles. Jetzt haben wir das Login und wenn ich hier auf Registrieren klicke, sehen wir, dass wir auch den Registrierungsbildschirm haben. Und hier in der App-Leiste haben wir die Zurück-Schaltfläche , mit der wir wieder zum Anmeldebildschirm gelangen können. Das war's für dieses Video, wir haben erfolgreich die Benutzeroberfläche für die Anmeldung und Registrierung erstellt . Wir sehen uns in der nächsten Sitzung. 6. Auth-Service-Klasse erstellen: Hallo, willkommen zurück. Jetzt ist es an der Zeit, dass wir anfangen, mit Daten zu arbeiten, oder Sie können sagen, mit dem Staat. Und zu diesem Zweck werden wir den Anbieter als staatliches Managementinstrument verwenden. Lassen Sie uns nun das Provider-Paket in diesem Terminal installieren . Schreiben Sie einfach einen Brief an den Anbieter. Das war's. Sie können auch auf die Website bob.gov gehen und sich das auch von dort aus durchdringen lassen. Schau einfach nach. Ja, wir haben den Anbieter. Lassen Sie uns nun zunächst eine Utils-Klasse erstellen. also im Ordner utils Erstellen Sie also im Ordner utils eine neue Datei. Punkt Punkt. Wir werden eine statische Funktion erstellen, um die Snackbar anzuzeigen. Da wird das oft benutzt werden. Deshalb erstelle ich dafür eine separate Methode. Importiere einfach Material als das Glas. Du kämst so dick, breit. Also Snackbar. Wir akzeptieren die Nachricht, den Glockenkontext und einen optionalen Farbwert , der Null sein kann. Da dies optional ist. Dann schreiben wir Skaphoid, Messenger Off Contexts, Dot Show Snack Bar. Also das, dieser Code ist von Flatter. Denk dran, Snackbar. Jetzt zufrieden, ich werde hier Text geben und eine Nachricht senden. Und in dieser Snackbar, in dieser Schlange, aber wir haben diese Hintergrundfarbe. Das wird Farbe sein. Das war's. Wenn es also Null ist, wird es zu seiner Standardfarbe zurückkehren. Jetzt haben wir diese Utils-Funktion hier. Lassen Sie uns nun unsere Art Service-Klasse erstellen. Jetzt wird es interessant. Einblicke. Dienstleistungen, richtig? Umfragen, dunkel, dunkel. Hier werden wir alle Methoden im Zusammenhang mit der Authentifizierung schreiben . Lassen Sie uns also zuerst das Material verpacken, dann das Paket importieren und überwachen. Dann erstellen Sie die Klassenkunst-Umfragen, die erweitern, ändern, benachrichtigen oder da wir Anbieter verwenden werden. Also werde ich als Erstes eine Instanz des Superbus-Clients erstellen . Byways Gland Supervise entspricht also Super Base Dot Instance Dot Client. Dies ist nur das Erstellen einer Instanz. Dann erstelle ich es, es wird geladen, variabel. Wird geladen. Ich habe für jedes Laden eine private Variable erstellt und dann Getter und Setter erstellt, damit Benutzer außerhalb dieser Klasse nicht direkt auf diesen Wert zugreifen können. Sie müssen das durchmachen, also können sie es nicht direkt ändern. Seltsamer Service, das können sie nicht. Sie müssen dieses Methodenset verwenden. Methode. Set wird geladen. Wir senden einen Bool-Wert. Es wird sein, ob das Laden dem Wert entspricht. Und benachrichtigen Sie die Zuhörer, damit sich jeder , der diesen seltsamen Dienst anhört, erfrischt. Das ist es also. Für dieses Video. Im nächsten Video werden wir an verschiedenen Methoden arbeiten. Danke. 7. Methode zur Registrierung eines Mitarbeiters: Hallo, willkommen zurück. Lassen Sie uns nun eine Methode erstellen , mit der ein Mitarbeiter ein Konto registrieren kann. In der Kunst- oder Risikoklasse. Eine zukünftige Funktion. Mitarbeiter registrieren. So wie das. Wir benötigen die E-Mail-Adresse, Zeichenfolge, das Passwort sowie den Glockenkontext, um die Snackbar anzuzeigen. Dann wickeln wir den Code in den try catch Block ein. Dieser Versuch, den ich zuerst machen werde, ist gesetzt, wird auf true geladen. Ist es. Ich werde diese Setter-Methode verwenden. Dann werde ich überprüfen, ob E-Mail gleich leer ist. Unser Passwort entspricht Md. Dann wirf einen Fehler. Wale sind erforderlich. Und wenn nicht, schreibe ich die Abfrage, um sie zu signieren. Das heißt, dieser Datentyp, der die Rückgabe ist, wird als Art-Response bezeichnet. Dann füge ich die Await Superbus-Instanz hinzu. Diese Variable Punkt, Punkt, Anmeldung wie folgt. Und hier müssen wir diese E-Mail und das Passwort schicken. Und danach zeigen wir die Utils Dot Show Snack Bar. Die Nachricht wird erfolgreich sein. Sie können sich jetzt anmelden und die Farbe wird dunkelgrün sein . Dann schreibe ich einfach, navigiere zum dritten Punkt, Pop. Und set wird auf false geladen. Das ist also der Code. Und was ist, wenn es eine Natter gibt? Zunächst einmal, was ich tun werde, ein Set wird auf false geladen. Dann zeige ich die Snackbar-Utils Dot Show Snackbar. Die Nachricht wird mit einem Punkt an String gesendet. Kontexte werden Kontexte sein, aber die Farbe wird rot sein. Okay? Das war also die Methode für die Registrierung. Und ich gehe einfach hier zur Dokumentation. Und ich zeige Ihnen diese Zeile , die einen Benutzer C signiert, Sie erhalten Dakota, hier sind die Antwort, Supervise oder die Anmeldung mit Passwort. Das ist das Zeichen im Studium. Wir haben das erstellt einen neuen Benutzer und eine C-Punkt-Anmeldung. Das ist also sehr einfach. Es, Sie erhalten den Benutzer auch aus der Antwort. Das war's also für dieses Video. Im nächsten Video werden wir die Methode zum An- und Abmelden und Q. schreiben . 8. Methode zum Anmelden und Abmelden: Hallo, lass uns mit unseren Methoden fortfahren. Und unter dieser Registerfunktion erstellen wir eine weitere Funktion, oder meine dritte, Sie können sagen, für die Anmeldung, nutzen Sie diese Zukunft. Stellen Sie jetzt auch hier ein. Wir werden nach dem E-Mail-Schlagwort fragen , Bill Contexts. Und dieser Code ist ziemlich ähnlich. Was Sie tun können, ist diesen Code zu kopieren, ihn hier einzufügen, und dann haben wir das Laden auf True Art Response. Dies wird ein Passwort mit Sinusgewicht sein. Und ich muss unser Navi hier nicht zeigen. Einfach setzen wird auf Falsch geladen. Und nehmen wir an, wir haben einen Fehler. Es wird sich hier erwischen. Ich werde nachgeben. Unterhalb dieses Funktionsrasters. Eine weitere Funktion erfordert die Abmeldung. Das ist sehr einfach, wie ein Gewicht. Also Purveys Dot Art, melde dich ab. Und wir werden die Zuhörer benachrichtigen. Wir werden auch einen Getter erstellen, um den Benutzer zu ermitteln, den dieser Benutzer den aktuellen Benutzer von Superbus erhält. Einfach so, dass Licht diese Kunst beaufsichtigt, Punkt aktueller Benutzer. So wie das. Das war's. Dadurch wird angezeigt, ob der Benutzer unterschreibt oder nicht. Jetzt haben wir den Anbieter hier, oder? Wir müssen unseren Anbieter in diesem Hauptpunkt angeben, Punkte, damit die Nase flacher , die wir in unserer Bewerbung angegeben haben. Also einfach hier mit Rigid namens Multi Provider. Der Anbieter, da wir später mehrere Anbieter haben werden. Hier. Schreiben Sie hier einfach, benachrichtigen Sie Ihren Anbieter. Dann erstelle. Und wir haben hier den Kontext der Bushaltestelle. Und schreibe einen seltsamen Service. Einfach so. Das war's. So deklarieren Sie Anbieter in einer Flatter-Anwendung. Das war's also für dieses Video. Im nächsten Video werden wir diese Methoden der Benutzeroberfläche zuweisen. Danke. 9. Methoden der UI zuweisen: Hallo. Jetzt ist es an der Zeit , dass wir sowohl die registrierte als auch die Login-Funktion unserer Benutzeroberfläche zuweisen . Gehen Sie also zum Registrierungsbildschirm. In dieser Registrierungsschaltfläche. Ich werde diesen erhöhten, aber dann internen Verbraucher verpacken , damit wir auf Eigenschaften und Methoden vom AAD-Service zugreifen können . Und ich werde diesen Weg verwenden , damit nicht das komplette Widget, die Rechnungsfunktion, immer wieder neu erstellt wird immer wieder neu erstellt nur diesen Abschnitt werden wir neu erstellen. Schreiben wir also wie Verbraucher, Verbraucher. Hier müssen wir erwähnen, welchen Anbieter wir verwenden. Dann haben wir den Baumeister. Dies wird Decks oder die Service Provider-Instanz verloren haben. Dieses Gefängnis nützt nichts. Hier. Wir müssen diese Schachtel in dieser Größe zurückgeben. Habe gerade Paste bekommen. Geben Sie ein Semikolon ein. Hier. Das sind vier. Okay, wir müssen nur das entfernen, das ist alles. Also haben wir gehandelt. Außerdem werden wir eine Anzeige anzeigen, die unter bestimmten Bedingungen geladen wird. Hier. In das Kind schreibe ich einen seltsamen Dienstanbieterpunkt, der geladen wird. Wenn es stimmt, dann zeige in der Mitte das Kind und es ist eine coolere Fortschrittsanzeige wie diese. Das heißt, wenn der Ladevorgang wahr ist, kreisförmige Fortschrittsanzeige anzeigen. Und wenn nicht, dann schreiben wir vor Ort einen seltsamen Dienstleister, einen registrierten Mitarbeiter. Hier haben wir den richtigen E-Mail-Controller-Punkttext in diesem Passwort. Punkttext für den Passwort-Controller. Und hier werde ich auch einfach einen Traum verschenken. Was ist, wenn es etwas mehr Platz gibt? Rahmen? K? Dieser Verbraucher ist also das Konzept des Anbieters. Sie hätten dieses Konzept also zumindest kennen müssen. Dann. Gehen Sie in ähnlicher Weise zum Anmeldebildschirm. Hier. Wir haben diese Eins, schätze ich. Ja. Ja. Okay. Jep. Hier. Diese Größe ist bei diesem Consumer Direct Service Provider angegeben. Dann haben wir den Baumeister. Es ist eine Textinstanz der Art Service Class geworden , die leichtfertig ist, Sie können sie beliebig nennen. Und wir haben den Chai und geben dann einfach diesen Login-Button zurück. Dieses Kind. Ähnlich werden wir es hier bei diesem Kind an Bedingungen geben. Der Geschmack. Der bereitgestellte Odd Service wird geladen. Dann konstantes Zentrum, kreisförmige Fortschrittsanzeige. So wie das. Und in der Presse werden wir einen seltsamen Dienstanbieter schreiben , einen Dot Login-Mitarbeiter. Ich habe E-Mail-Controller, Dot-Text, Password Controller Dot TXT ausprobiert . Und auch hier kannst du den Trimmkram machen. Das ist ein Hit. Rette alles. Jetzt. Geh zu ihnen. Superbus-Armaturenbrett. Hier. Econ-Authentifizierung. , ist E-Mail bei diesen Anbietern Wie Sie sehen können, ist E-Mail bei diesen Anbietern standardmäßig aktiviert. Ich werde diese Bestätigungs-E-Mail einfach deaktivieren, da wir jede E-Mail überprüfen müssen , bevor wir uns anmelden. Wenn Sie möchten, können Sie es später aktivieren. Klicken Sie nun auf Speichern. Also jetzt ist E-Mail da , wir haben jetzt keine Benutzer. Lassen Sie uns endlich überprüfen, ob es funktioniert oder nicht. Wenn ich nun etwas gebe und 12345 schreibe und auf Anmelden klicke, sehe ich, dass wir die eine oder andere Ausnahme haben, ungültige Anmeldeinformationen. Das heißt, diese E-Mail und das Passwort sind nicht wie jetzt registriert. Ich werde es registrieren. Verwenden Sie die E-Mail-Adresse, die Sie möchten. Dann Passwort, klicken Sie auf Registrieren. K, Erfolg. Du kannst dich jetzt einloggen. Siehst du. Wenn ich jetzt das Passwort schreibe , hätte es das tun sollen. Offensichtlich mache ich jetzt nichts. Wir werden jetzt natürlich auf keinen Bildschirm geschickt, weil wir uns die Änderungen nicht anhören. Aber wenn ich dort hingehe und neu lade, sehen Sie, wir haben die E-Mail erfolgreich registriert. Das war's also für dieses Video. Ich hoffe, du hast es bis jetzt gelernt und verstanden. Wir sehen uns in der nächsten Sitzung. Danke. 10. Benutzermodell und DB-Tabellen erstellen: Hallo, willkommen zurück. Also werden wir jetzt ein Modell für die Benutzerdaten erstellen. also im Ordner models Erstellen Sie also im Ordner models eine neue Datei mit dem Namen User model dot dot. Jetzt werden all diese Daten in der Datenbank gespeichert, nachdem sich der Benutzer registriert hat. Moment, wo wir stattdessen nur sind, können wir diese Daten im Authentifizierungsbereich sehen. Was aber, wenn wir wollen, dass der Name des Mitarbeiters oder die Abteilung, in der die Daten verwendet werden, die wir in der Datenbank speichern müssen Also sagen wir Glass. Benutzermodell. Die Daten, die so aussehen, als ob sie kommen, sind binär, String-ID, dann Fine String, E-Mail, letzter String-Name, Vinyl. Mach es groß. Abschluss der Abteilung. Da wir eine weitere Tabelle für die Abteilung und das Listentool erstellen werden , ist die ID, die dies ist ein Fremdschlüssel für den Primärschlüssel wenn Sie das Konzept von SQL kennen , und dann eine binäre Zeichenfolge, ist die Mitarbeiter-ID die ID, die wir erstellt haben. Das heißt, das wird eine einzigartige Idee sein. Lassen Sie uns einen Konstruktor erstellen. Dann die erforderliche ID, erforderlich. Diese werden nicht per E-Mail versendet. Hat diesen Namen und diese Abteilung erworben. Da es sich um ein Liberales handelt, schreiben wir nicht das Erforderliche. Es gibt eine Punkt-Mitarbeiter-ID. Erstellen Sie nun eine Factory-Methode, um die JSON-Daten, die von der Superbase kommen, in dieses Modell zu konvertieren . Also Assembly Factory Benutzermodell für das Benutzermodell Punkt Rahm, Jason, zuordnen, String dynamische Daten und geben ein Benutzermodell zurück. Und hier musst du Daten schreiben. Id ist GAAP-Bit-Bit, die IT-Abteilung ist übrig. Das wird eine E-Mail sein. Das wird benannt. Diese Namen oder Spaltennamen, die wir in dieser Mitarbeiter-ID der Superbus-Abteilung erstellen . Okay, spar dir all diese Dinge. Dies ist nicht erforderlich. Lassen Sie uns nun eine Tabelle für die weitere Abteilung erstellen. Gehen wir zu einem Browser. Gehe zu deinem Browser. Gehen Sie dann zum Tabelleneditor. Erstellen Sie dann eine neue Tabelle. Name. Departements. Dann aktiviere IRLS vorerst nicht. Und für diese Daten benötigen wir auch keine Echtzeit. Erstellen Sie einfach eine Titelspalte. Mach es zu Text. Das war's. Speichern Sie es. Und dann füge hier einige Daten ein. Also hier ist zuerst der Vertrieb, dann die Abteilung, die ID-Abteilung, dann das Marketing und die Personalabteilung, dann Finanzen dort. Dies sind nur die Abteilungen in einem Unternehmen, das AND-Betrieb hat. Also habe ich Daten eingegeben. Angenommen, Sie können, wenn Sie möchten, eine weitere App für den Administrator des Unternehmens erstellen . Er kann diese Daten von seinem Admin-Portal aus eingeben. Es liegt an dir. Jetzt haben wir die Abteilungen. Sie werden eine weitere Tabelle mit dem Namen Mitarbeiter erstellen. Mitarbeiter. Noch einmal, entferne das RLS vorerst. Und dann. Diese ID wird ein Fremdschlüssel für die ID des Kunstbenutzers sein. Somit entspricht diese ID der authentifizierten Idee des Benutzers. Speichern Sie es einfach. Dann gib ihm einen Namen. Mach es zu Text. Dann haben wir diese E-Mail. Gib ihm Text. Geben Sie dann eine Zeile für Spalte für Abteilung ein. Es wird ein Fremdschlüssel für die ID der Abteilung wie diese sein. Und dann haben wir als nächstes die Mitarbeiter-ID. Ausweis. Das gilt auch für Text. Wir haben also zwei Fremdschlüssel, Abteilung und die ID. Dies ist in erster Linie auch der Fall. Speichern Sie es. Ich hoffe, Sie verstehen , dass diese Tabellen mit dieser identisch sind. Diese Daten-IDE kann die Mitarbeiter-ID der Abteilung ablesen. Jetzt werden sie endlich in ihren Konstanten die Dateinamenkonstanten Punkt Punkt erstellen. Wir werden hier schreiben, dass sie ästhetische Variablen benennen, sodass es einfach ist, sie später überall in der Anwendung zu verwenden , ohne dass es zu Tippfehlern kommt. Wie Glas, Konstanten. Das ist weg. Die Mitarbeitertabelle entspricht der Tabelle der Mitarbeiter. Und diese **** verstorbene Abteilung entspricht zwei Abteilungen. Das war's. In diesem Video haben wir viel gemacht . Wir sehen uns in der nächsten Sitzung. 11. Erstellen von Datenbankservice-Kursen: Hallo, willkommen zurück. In diesem Video werden wir an der Erstellung einer Datenbankservice-Klasse arbeiten . Also haben wir früher die Kunstbefragungen. Es ist Zeit, dass wir eine weitere Datei innerhalb der Dienste erstellen und sie DV nennen , Umfragen Punkt Punkt. Erstellen Sie also einen Klassen-DB-Dienst , der sich um den Änderungsmodifikator erweitert, da er so ist, wir werden ihn verwenden, ihn als Anbieter verwenden. Erstellen Sie dann eine Instanz des Pelvis-Clients. Supervisor ist unglaublich ähnlich zu Supervise Dot Instance Dot Client. Okay? Die erste Funktion, die wir erstellen werden, besteht darin, neue Benutzerdaten einzufügen . Sie beschränken das Einfügen neuer Benutzerdatenbanktabelle wir erstellt haben, auf Mitarbeiter. Wir müssen diese Informationen dort speichern. Vom Benutzer. Wir werden nach der Zeichenfolge der E-Mail-ID fragen, das ist die Art-ID. Da wir hier erwähnt haben , dass die Idee ein ausländisches Geschenk sein wird. Das ist der einzige Grund , warum sie in die Datenbank einfügen. Der Befehl lautet Purveys Instanzpunkt aus welcher Tabelle? Der Tabellenname ist in dieser konstanten Start-Mitarbeitertabelle enthalten. Dann wird direkt mit einem Punkt die Abfrage eingefügt. Hier müssen wir einen Kartenwert senden. Das war's. Dies ist die einzige Abfrage, die erforderlich ist, um neue Daten zu erstellen oder einzufügen . Hier. Id wird id sein. Der Name wird leer sein, da es sich um einen neuen Benutzer handelt. E-Mail wird E-Mail sein. Dann ist das neu, das ist die Mitarbeiter-ID. Dazu müssen wir eine Funktion erstellen, um sie zu generieren. Wir werden es erstellen, und dann wird die Abteilung vorerst Null sein. Ich hoffe, wir haben die Abteilung, ja, wir haben die Abteilung dort. Der Benutzer kann seine Abteilung später im Profilbereich aktualisieren . Jetzt müssen wir eine Funktion erstellen, um eine zufällige ID zu erhalten. Lassen Sie uns also eine Zeichenfolge erstellen und zufällige Mitarbeiter-ID generieren. Jetzt werden wir hier die Zufallsfunktion verwenden. Das stammt aus der Mathematikbibliothek. Nun, was ich will, welche Charaktere ich will, ist nur der Name der Firma hier. Nehmen wir f, a und g an, dann die Großbuchstaben F, a und G und dann all diese Zahlen. Das bedeutet also, dass die Funktion die ID nur aus diesen Zahlen erstellt , also nur aus der dieses Zeichen. Das ist, das ist nur meine Präferenz. Du kannst alle Zeichen verwenden , also von A bis Z. Ich benutze nur das. Dann. Ich könnte wirklich eine Funktion schreiben, die ich selbst aus dem Internet bekommen habe. Liste, Punkt generieren, Land, Taiwan, acht Zeichen. Dann hier, alle Charaktere. Zufällige Punkt-, Weiter-, Ganzzahl -, Zeichen Punktlänge und schließlich am Ende Punkt Join, fügen Sie wie folgt zusammen. Also dieser eine Chen Ich selbst habe mir einen Gott aus dem Internet geschnappt. Sie können auch jede andere Generierungsfunktion verwenden , wenn Sie möchten. Diese eine Kette macht was? Aus diesen Zeichen wird eine achtstellige zufällige ID erstellt. Rufen Sie diese Funktion jetzt hier auf. Wir haben die Funktion „Neuen Benutzer einfügen“ bereit. Jetzt rufen wir diese Funktion „Neues einfügen“ auf, während wir einen neuen Benutzer registrieren. Gehen Sie also zum AAD-Service. Während wir hier sind, wenn wir uns registrieren. Lass uns jetzt sehen. Wir haben hier die letzte künstlerische Antwort. Ich schreibe einfach, wenn die Antworten ungleich Null sind, dann das und füge alles hier ein. Zuallererst werde ich warten. Ich muss oben eine Instanz dieses DV-Dienstes erstellen . Durch den Null-DB-Dienst. Das jüngste. Erstellen Sie eine Instanz , damit wir die Funktionen verwenden können. Dann schreibe ich hier unter diesem, über diesem Utils, divi surveys dot insert new user. Sie können Lees E-Mail und ID als Antwort mit Punkt-Benutzer-ID verwenden. Das. Wir müssen die E-Mail schicken und sie sind winzig. Dann zeigen wir eine Snackbar, die in der Nähe angezeigt wird hier werde ich einfach schreiben erfolgreich registriert und ich möchte nicht, dass der Benutzer erneut und dann seine Anmeldeinformationen. Was ich also tun kann, ist die Login-Funktion hier aufzurufen, so. Mitarbeiter anmelden. Ich habe das E-Mail-Passwort und den Kontext. Und da das Laden von Siedlern auch hier falsch ist. Also werde ich das aus der Funktion entfernen , dass es Sachen über Chen gibt. Ich möchte nicht, dass sie beim Laden auf Falsch gesetzt , da es sich um einen direkten Call Inside Login-Mitarbeiter handelt. Hier. Ich hoffe, Sie haben verstanden, dass ich diese Funktion hier aufgerufen habe, damit der Benutzer diese E-Mail nach der Registrierung nicht erneut eingeben muss . Stellen Sie sich vor, hier ist registriert und müssen jetzt wieder auf die Anmeldeseite gehen und erneut die gleichen Login-Daten eingeben. Das ist der einzige Grund. Da wir nun diesen neuen Anbieter haben, werde ich ihn im Multiprovider deklarieren. Also geh einfach her, kopiere diese Zeile, füge sie ein und schreibe dv service. Das war's. Das war's also für dieses Video. Lass uns in der nächsten Sitzung weitermachen. Danke. 12. Umgang mit dem Autorisierungsstatus des Benutzers: Hallo. Wir haben also alles bereit. Das ist der Registrierungs - und der Anmeldeteil. Erstellen Sie nun auf dem Insights-Bildschirm einen Startbildschirm , damit der Benutzer nach erfolgreicher Registrierung zu diesem navigieren kann . Importieren Sie also einfach Material, erstellen Sie dann einen starren Zustand und nennen Sie ihn Startbildschirm. Dann geben Sie hier einfach ein körperzentriertes Kind zurück . Und ich werde es auf den Startbildschirm schreiben. Das sind also vorerst nur Dummy-Daten. Nur das einfache Text-Widget in der Mitte des Bildschirms. Jetzt müssen wir überprüfen , ob der Benutzer oder die Pins überprüft, ob er angemeldet ist oder nicht. Das heißt, ob es sich um einen neuen Benutzer handelt, der sich bereits angemeldet hat. Also müssen wir ihm den Bildschirm zeigen, der die Anmeldeseite oder den Startbildschirm ist , bedingt. für diesen Insight-Bildschirm Erstellen Sie für diesen Insight-Bildschirm einen neuen Bildschirm namens Splashscreen. Punkt Punkt. Erneut Material importieren. Erstellen Sie dann einen statellosen starren Bildschirm, Splashscreen bezeichnen. Dann hier im Gürtel. Zunächst rufe ich den seltsamen Anbieter an. Das heißt, seltsame Umfragen sind gleichbedeutend mit Kontextanbietern. Und dann der Service. Dann werde ich die Datei entsprechend zurückgeben, wenn der AAD-Service Dark Current User gleich Null ist, dann zum Anmeldebildschirm, zum Startbildschirm. Das war's. Ich weiß das vorher, weil ich nach der Registrierung auch von den Details begeistert war. Also werde ich vorerst die Art Surveys Punkt Sign Out aufrufen , damit die Sitzung beendet ist. Und gehe zum Hauptpunkt und mache den Splash-Screen zum Root-Bildschirm. So wie das. Das war's. Mal sehen, ich kann nicht bestehen. Was ist der Deal hier? Okay. Gehe einfach auf main.out und den Splash-Screen und kommentiere das vorerst. Okay, um die Liste immer wieder zu benachrichtigen . Das ist, das ist nicht. Also werden wir diese Funktion hier natürlich später nicht noch einmal aufrufen. Aber jetzt, da wir diesen Datenbankabschnitt hier haben, müssen wir zur Authentifizierung gehen und diesen Benutzer löschen, da wir die Benutzerdetails zuvor nicht in der Datenbank gespeichert haben. Löschen Sie diesen Benutzer, wir werden uns erneut registrieren. Lassen Sie uns jetzt unsere App herausbringen. Klicken Sie in der E-Mail erneut darauf. 345. Registriere dich. Schauen wir uns nun an, ob wir uns direkt angemeldet haben oder ob wir uns nicht erfolgreich registriert haben. Und wir werden direkt zum Startbildschirm geschickt. Also, worüber ich gesprochen habe. Der Benutzer muss sich nicht erneut anmelden, weil es meiner Meinung nach eine gute Erfahrung ist. Also. Nun, wenn ich neu starte, schauen wir mal, auf welcher Seite ich das sehe? Ich sehe den Login oder direkt den Startbildschirm. Und schau, ob wir auf dem Startbildschirm sind. Es gibt keinen Anmeldebildschirm und das alles, da wir uns auch um den Status dieses Benutzers kümmern. Also danke. Im nächsten Video werden wir an der Benutzeroberfläche des Startbildschirms arbeiten. 13. Auf dem Home-Bildschirm arbeiten: Hallo, willkommen zurück. Beginnen wir nun mit der Erstellung einer unteren Navigationsleiste. Auf dem Startbildschirm sehen Sie, dass das Homeschooling gerade leer ist. Also lasst uns daran arbeiten. Gehe zum Startbildschirm. Hier. Unter dem Körper. Lassen Sie uns eine untere Navigationsleiste erstellen. Es wird ein Container sein. Es ist der Wert. Dann ist die Höhe des Containers 70. Dann gib etwas Spielraum. Konstante, Kante fügt nur Punkte links, 12, rechts, 12, unten 24 ein. Dann Dekoration. Verleihen Sie eine Const-Box als Dekoration. Dann gib ihm hier Farbe. Die Farben sind weiß. Dann Grenzradius. Punktradius mit Randradius, kreisförmiger Punkt für t. Geben Sie dann auch den Quaderschatteneffekt. Es akzeptiert ein Array und der einzige Wert, den wir geben, ist box-Shadow, dann langweiliger. Farben, dunkel, schwarz, 26, Unschärferadius. Dann Offset. Der Offsetwert beträgt 22. Also schauen wir uns einfach an, wie es aussieht. Sehen Sie, wir haben gerade diese Navigationsleiste, es ist nur ein bestimmter Container. Wir werden die Werte hier hinzufügen. Sie werden hier Ikonen sein. Und dafür werde ich eine Bibliothek verwenden, die als Font Awesome Icons bekannt ist. Also einfach das Terminal öffnen, Klemmenende rechts, schmeicheln. Schrift hinzufügen. Toller Brief. Also das ist der, den ich nennen kann, das ist der Paketname. Drücken Sie die Eingabetaste. Sie können auch zum Entwickler gehen und nach diesem Paket suchen, wenn Sie möchten. Dieses Paket hilft uns , viele Icons zu verwenden. In dieser Anwendung. Wir werden nicht so viele Symbole verwenden. Das heißt, wenn Sie möchten, können Sie dies später auch entfernen. Damit es funktioniert, müssen Sie die Anwendung beenden, da es sich um ein neues Paket handelt, und sie dann erneut ausführen. Ich werde diese Datei einfach schließen. Und das ist, ich brauche diese Dateien jetzt nicht. Nur der Startbildschirm. Okay? Was passiert? Jetzt wieder arbeiten. Lassen Sie uns nun die Symbole in diesem Container erstellen. Hier in dem Kind. Zeig es einfach an. Reihe. Du hast Kinder. Und in dieser Reihe, oder? Main existiert und Kreuzachse zur Mitte, so wie hier. Und dann brauchen wir **** können sagen wir machen es einfach. Ich kann eine Liste mit Symbolen, Daten, Navigation und Symbolen sehen . Dann am schlimmsten lasse ich die Font Awesome-Symbole, diese festen Kalendertage, dann das Font Awesome-Symbol überprüfen. Und schließlich das Font Awesome-Symbol Punkt Solid User. Das sind also die drei Symbole, die wir verwenden werden. Hier in diesem Fall, Kinder, einfach richtig, geben Sie es eine Fortschleife. Für int ist I gleich Null. I weniger als Navigationssymbole Punktlänge I plus. Verwenden Sie dann diesen Spread-Operator. Und dann verwenden wir Expanded Child Will Be Center. Und dann gibt das F-Symbol dem Navigationssymbol den Index, sodass diese Symbole nacheinander in einem erweiterten Bereich ausgegeben werden. Schauen wir uns nun an, wie es aussieht. Wenn ich nachsehe, haben wir die drei, die ich sehen kann, dass anständig aussehen, glaube ich. Jetzt passiert offensichtlich nichts, wenn ich darauf klicke. Daran müssen wir arbeiten. Nun, hier unter den Symbolen, lassen Sie uns einfach so tun, als ob int current index gleich Eins ist. Und bei diesen Kindern haben wir das erweitert. Dann dieses Zentrum im GestureDetector. In der Registerkarte. Wir schreiben einfach set state. Der aktuelle Index entspricht I, ändern Sie den Index. Und dann werden wir hier diese Farbe entsprechend dem Index ändern. Also werden wir Farbe bewerten. Wenn I gleich dem aktuellen Index ist, dann färbt sich die Farbe, die der rote Akzent dunkel, schwarz, 54 färbt. Ähnlich groß. Wenn I dem aktuellen Index entspricht, dann mache ihn 30 oder sonst 26. Mal sehen, ob es funktioniert oder nicht. Wenn ich hier klicke, um die Symbolgröße und die Farbe zu sehen , ändern sich beide. Jetzt können Sie sehen, dass wir drei Bildschirme haben. Lassen Sie uns also diese drei Bildschirme erstellen. Erstellen Sie auf Bildschirmen Kalender, Bildschirm, Punkt , Punkt, dann Anwesenheit, grüner Punkt. Und schließlich haben wir die Datei mit einem grünen Punkt. Lassen Sie uns in allem einfach einen einfachen Bildschirm erstellen. Es handelt sich um wichtiges Material, das der Kreditgeber dann erstellt. Bildschirm. Die Rückkehr ist ein Gerüst. Körper, Zentrum, Kind. Der nächste Kalender. Kopiere alles. Gehe zum Anwesenheitsbildschirm und änderte ihren Namen in Tanz. Grünes Licht heute. Teilnahme. Gehen Sie in ähnlicher Weise zum Profilbildschirm und fügen Sie alles ein. Ihr Name wurde in Profilbildschirm und Ideenprofil geändert. Das ist momentan nur ein Dummy-Bildschirm. Fügen Sie abschließend diese Bildschirme dem Hauptbildschirm hinzu, damit wir mit Hilfe der unteren Navigationsleiste zu ihnen navigieren können mit Hilfe der unteren Navigationsleiste zu ihnen navigieren . Also gehe hier zum Startbildschirm. Am Ende ist die Leiche hier, oder? Indiziert. Der Pfahl da drin. Dann wird im Index der Index aktuelle Index stehen. Und Kinder werden alle Seiten sein. Das wird konstant sein. Schreiben wir Kreditgeber zuerst grün, dann grün, dann diesen Profilbildschirm. Das war's. Rette alles. Schau es dir an. Sehen Sie sich die heutige Teilnahme an. Wenn ich auf Kalender klicke. Und wenn ich habe, wenn ich auf Datei hochladen klicke und seit Indizes anzeigt, wann es 01 ist, lesen, dass die erste Seite angezeigt wird, ist diese Teilnahme für heute? Also funktioniert bis jetzt alles. Im nächsten Video werden wir heute daran arbeiten, dann auf dem Bildschirm. Danke. 14. An der Anwesenheits-UI arbeiten: Hallo, willkommen zurück. Lassen Sie uns nun mit der Arbeit an diesem Datum beginnen und dann die Benutzeroberfläche überprüfen. Also hier im Hauptteil, fangen wir mit seinem einzelnen Child-ScrollView an. In diesem Kind wird eine starre Spalte sein. Und wenn dann die Kinder und dieses einzelne Kind rüberscrollen, gebe ich ein paar Polsterpistolen und bestehe darauf, dass alle 20. nun in diesen Kindern Lassen Sie uns nun in diesen Kindern ein Text-Widget haben, das sich innerhalb des Containers überlappt. Geben Sie der IT eine Ausrichtung an eine Ausrichtung. Punkte zentriert, links. Dann margin, const, Sätze hinzufügen, nicht nur 32. Dann Kind. Konst. Text als Willkommen. Stil. Textil Geben Sie dem Textil etwas Farbe. Farben, nicht Schwarz 54. Und die Schriftgröße war 30. Okay, spar dir das. Und dann haben wir unter diesem Container, wie in einem anderen Container, wie in einem anderen Container, der hier ist, die Begrüßung und hier haben wir den Namen des Mitarbeiters. Es ist Ausrichtung. Ausrichtung, Mitte links. Dann warf das Kind einen Blick, Text. Ich heiße Louis. Das ist nur ein Mitarbeiter namens Dummy Light. Jetzt werden wir später den Textstil zeigen und ihm einfach eine Schriftgröße von 25 geben. Jetzt speichere es. Lass uns nachsehen. Sehen Sie, wir haben die Begrüßung und den Namen des Mitarbeiters hier. Dann lass uns weitermachen. Unter diesem Container. Ich nehme noch einen Container. Kopiere diesen, füge ihn ein. Hier. Es wird Spielraum geben. Als Konst. Durch das Hinzufügen werden nur 32 festgelegt. Und hier werden die Texte zwei Tage dauern. Das tut es. Und die Schriftgröße wird ausreichen. Und dann unter diesem Container. Und dieser Container, gib ihm einen Spielraum. Konst. Das Hinzufügen von Sätzen, die nur 12 sind. Aber ich bin 32. Ich schreibe 150. Deklaration. Konstante Schachteldekoration. Die LED-Farben Punkt weiß, Box Shadow. Wir haben den Box Shadow hier. Nun, es wird Farben geben, die 26. Dann ist der Unschärferadius ein Offset, Versatzwert ist zwei. Und darunter, das ist unter diesem Box-Shadow. Wir haben diesen Grenzradius. Randradius, die Radiuspunkte sind kühler. Sagen wir nun, schauen wir uns an, wie es aussieht und sehen uns den heutigen Status des Staates und das sieht anständig aus. Jetzt. Im nächsten Video werden wir an der linken Benutzeroberfläche arbeiten. Danke. 15. Folie zum Einchecken implementieren: Hallo, lass uns weiterarbeiten. Also hier hatten wir diesen Container. In diesem Container-Raster das untergeordnete Zeilen-Widget. Es wird Kinder geben. Kinder hier werden die Hauptachsenausrichtung, Mittelpunkt, Ausrichtung, Punkte aufgeschrieben . Und dann starben Kinder und dehnten sich starr aus. Ich hoffe, du kennst all diese Widgets, denn ich erstelle nur die Benutzeroberfläche, sonst nichts. X-gebunden. Dann wird es hier Column Vision sein. Dann haben wir in dieser Spalte wieder die Ausrichtung und das Kreuz der Hauptachse. Kopieren Sie es einfach und fügen Sie es ein. Und dann haben wir diese Kinder. Jetzt hier. Stimmt. Es braucht ein Widget. Dieser Text wird einchecken. Gib ihm etwas Styling. Textstil. Die Schriftgröße beträgt 20, die Farbe ist schwarz, 54. Dann unterhalb dieser Textgröße das Feld. Warte einen Tag. Trennwand für Kinder, nur um etwas Abstand zu schaffen. Und dann noch ein Text. Nun, das Timing ist momentan nur fest codiert 930. Dann abgestanden. Deckstil, Schrift, Größe 25. Du kannst es sehen. Es ist Rho in der Reihe. Wir haben dieses erweiterte Widget. Jetzt. Kopieren Sie dieses expandierte Rigid. Und fügen Sie es in dieser Zeile erneut so ein. Und hier wird das Checkout sein. Und die Textur wird so leer sein. Und speichern Sie es. Lass uns gehen und es uns ansehen. Siehst du, es sieht anständig aus, glaube ich. Der heutige Status. Und so. Und darunter tut es der heutige Staat. Sie können hier etwas mehr angeben , nur um etwas Abstand zu schaffen. Das war's. Zwischen D wieder auf. Okay. Jetzt für den Check-in werde ich ein Paket verwenden. Also schreib einfach später. Bob, füge Folie hinzu, um zu handeln. Wir werden diese Folie verwenden, um das Aktionspaket zu implementieren, um Funktionen zu implementieren, einzuchecken, auszuchecken und einzustellen. Das wird gut aussehen und nicht nur ein Knopf. Die erhöhte Taste wird gedrückt, um einzuchecken. Das wird gut aussehen. Ich schätze. Wir müssen vielleicht anhalten und erneut rennen. Mal sehen, was passiert. Aber wenn ich zum Pub-Spezifikationspunkt YAML gehe, nur um zu überprüfen, sehen Sie, wir haben das Widget hier, tut mir leid für die Verpackung. Lassen Sie uns jetzt daran arbeiten. Gehe zu dann, dann zum Bildschirm. Ich werde alle Seiten schließen. Hier. Ganz oben. Wir müssen einen Schlüssel für die Folie erstellen. Starrer, solider globaler Schlüssel. Der Slide-Aktionsstatus q0 entspricht dem globalen Schlüssel. Leichter Aktionszustand. Dieser Fall ist nur erforderlich, damit das Widget funktioniert. Jetzt müssen wir unten in diese Spalte schreiben. Das heißt, wir haben dieses Spalten-Widget hier, geh runter. Hier. Wir müssen einem anderen Container die Ausrichtung geben. Ausrichtung in der Mitte des linken Kindes. Die nächsten 15. April 2023. Textil Ich kodiere diese Informationen gerade fest. Und kopieren Sie es auf ähnliche Weise und fügen Sie es erneut ein. Hier wird das x die Zeit sein. Also werde ich Duan De einfach Nullnull, Nulleins-PM schreiben. Und viel Spaß, die Größe wird D sein. Die Farbe wird die Farben Punkt Schwarz sein. Fünfter Standard. Einfach speichern. Und sieh. Dies zeigt nur das letzte Datum. Das war's. Und das wird diese Zeit sein, aktuelle Zeit. Jetzt ist es an der Zeit, den Schiebeknopf zu erstellen. In dieser Spalte. Erstellen Sie einfach einen weiteren Container. Marge. Const, füge Sätze hinzu, die nur 25 sind. Dann wird das Kind ein starrer Baumeister sein. So wie das. Hier wird es der Kontext sein. Und dann geben Sie die Folienaktion einfach so zurück. Und jetzt wird Text gelöscht. Um auszuchecken. Dann wird Textil Textil sein. Farbe. Schichten, dunkel, schwarz, 54. Die Größe der Anleihen wird 18 betragen. Dann unter diesem Stil. Der äußere Kreis, die äußere Farbe wird aus Farben bestehen. Diese weiße Farbe wird die Farbe sein, die den roten Akzent kennzeichnet. Der Schlüssel wird der Schlüssel sein. Schließlich beim Absenden. So wie das. Hier, genau richtig. Der Garden State wurde zurückgesetzt. Das macht also Licht, das kommt an seine ursprüngliche Position. Also sieh mal, wir haben diesen Slider. Es erreicht seine ursprüngliche Position , weil wir es zurücksetzen. Aber es sieht so gut aus. Dementsprechend können Sie einfach die Größe des Polsterrandes angeben Größe des Polsterrandes wenn Sie der Meinung sind, dass hier kein Platz vorhanden ist. Sie können diese Dinge also später tun, weil Sie hier vielleicht andere Informationen, irgendeine Art von Werbung, zeigen möchten . Es liegt an dir. Für mich sollte diese Funktion funktionieren. Das war's. Das war's. Für dieses Video. Wir werden weiterarbeiten und echte Daten erhalten , wenn dies in den späteren Videos fehlschlägt. Danke. 16. Funktion Nutzerdaten abrufen: Hallo, willkommen zurück. Jetzt ist es an der Zeit, eine Funktion zu erstellen die die Benutzerdaten aus der angezeigten Mitarbeitertabelle abruft, sodass wir diejenigen anzeigen können , die sich hier auf dem Bildschirm befinden. Gehen Sie zur Punktdatei für DB-Umfragen. Ganz oben. Erstellen Sie zunächst eine Variable für das Benutzermodell, die Null sein kann. Benutzermodell. Erstellen Sie dann eine Funktion. Wenn es eine zukünftige Funktion ist, die ein Benutzermodell zurückgibt, werden wir das patchen. Es konvertiert es nicht. Dann erhalte ich Benutzerdaten. Die Abfrage lautet Benutzerdaten entsprechen wait. Dunkler Rum von Super Way. Das heißt, welcher Tisch? Die Tabelle besteht aus Konstanten, verwendet keine Tabelle. Und frage Punkt auswählen. Das heißt, es werden alle ausgewählt, aber natürlich müssen wir nur diesen Mitarbeiter auswählen. Also verwenden wir gleich , welche Spalte wir für die ID-Spalte und welchen Wert wir überprüfen müssen. Wir müssen die Autobahnen überprüfen, die es gibt. Die aktuelle Benutzer-ID. Das heißt, da wir wissen, dass sie nicht Null sein kann, habe ich diesen Ausruf gegeben. Diese Abfrage geht zur Mitarbeitertabelle und ruft die Daten ab, die dieser ID entsprechen. Und das heißt, er wird diese ID überprüfen, diese Spalten-ID. Das ist sehr einfach. Dann. Und ich weiß, dass die Daten Single sein werden und Lisa nur Single schreiben wird, weil es nicht mehr als einen Arbeitgeber mit derselben ID geben kann. Dann werde ich schreiben, dass das Benutzermodell dem Benutzermodell von Jason entspricht. Und ich werde diese Benutzerdaten hierher schicken. Und ich werde auch das Benutzermodell zurückgeben. Und das ist nicht Null. Ich hoffe also, Sie haben diese Codezeile verstanden. Also bekommen wir die Daten. Wir ändern die Daten ein Benutzermodell und speichern sie in diesem Benutzermodell, einer Variablen, die wir oben deklariert haben. Jetzt zeigen wir diesen Benutzernamen oder die ID anstelle des Platzhalters darin und dann den Bildschirm. Also hier haben wir diesen Container-Mitarbeiternamen , mit dem ich ein Verbraucher-Widget erstellen werde. Das ist, das kommt vom Anbieter. Denken Sie daran, dass es auf welchen Anbieter, welche DB, welchen Service und welchen Builder hört . Wir haben den Kontext, die Serviceklasseninstanz und das Kind. Dann gib deinen Stuhlbauer zurück. Und was ist jetzt die Zukunft? Die Zukunft heißt DV Surveys, Dot Get Userdaten. Also werden die Benutzerdaten hierher gesendet. Im Builder erhalten wir den Kontext und damit den Snapshot. Jetzt wissen wir, wie man einen zukünftigen Builder benutzt. Das heißt, wenn der Snapshot Daten enthält, machen Sie etwas anderes. Return, const, size, box, weight, 60, child, lineare Fortschrittsanzeige. Und was auch immer der Benutzer hat Daten. Dann geben wir diesen Container zurück , bei dem es sich um den Mitarbeiternamenscontainer handelt. Vielleicht wird es den Container mit dem Namen des Mitarbeiters zurückgeben. In diesem Text. Wir werden hier einen Schnappschuss schreiben. Das heißt, wenn es das Benutzermodell hat, entspricht der Benutzer dem Snapshot dieses Datensatzes, da wir wissen, dass es sich bei den kommenden Daten um einen Benutzermodelltyp handelt. Und hier in diesem Text schreibe ich, wenn der Benutzer-Punktname nicht gleich leer ist, dann schreibe ich den Benutzer-Punktnamen. Warte, lass uns sehen. Ich hoffe, nichts ist falsch. Wie die ID, so, die Benutzer-Mitarbeiter-ID. Aber jetzt schauen wir mal. Okay, das kann nicht konstant sein. Das war's. Und lass es konstant sein. Jetzt speichere alles. Ich hoffe, Sie haben das verstanden, indem Sie den Verbraucher verwenden und auf den Dienst zugreifen und dann die zukünftige Funktion aufrufen. Und hier wird einfach überprüft, ob Benutzer seinen Namen aktualisiert hat oder nicht. Wenn nicht, dann zeige die Mitarbeiter-ID mit ihrem Hashtag. Lass uns nachsehen. Das ist meine Mitarbeiter-ID. Und da mein Name gerade nicht da ist, wird uns die Mitarbeiter-ID angezeigt. Dies ist jetzt erledigt, um die Daten und alles zu formatieren. Ich werde ein Paket verwenden. Also einfach Idee. Bob, füge IN D Intel-Paket hinzu. Ich werde dieses Paket für die Datumsformatierung verwenden. Werde zum Pub-Spezifikationspunkt YAML gehen und nachschauen. Ja, wir haben das Paket. Jetzt. Ich möchte hier das letzte Datum anzeigen. Also geh einchecken, auschecken. Okay. Hier. In diesem Text müssen wir den Code schreiben. Datumsformat, okay? Dann ja, richtig, das Format, das ich will, ist kleines VD-Großbuchstabe M und dann das kleine Y 0 mal so oft. Das automatisiert die Zeit , die jetzt so ist. Kopieren Sie auf ähnliche Weise diese Zeile und fügen Sie sie hier ein. Und hier. Das Format wird in Stunden, Minuten, Sekunden sein, so, okay? Aber natürlich werden sich die Sekunden weiter ändern. Deshalb werden wir das in einen Stream-Builder packen. Und hier wird Stream Punkt periodisch, const, duration, sekunden sein, einer pro Sekunde, aktualisieren Sie ihn einfach. Die Sekunden, die der Wert sind, werden also ständig aktualisiert. Mach es konstant, okay. Mach es konstant. Lass es uns überprüfen. Und lass uns sehen. Ich weiß es nicht. Stream-Punkt, periodischer Schnappschuss. Lass uns noch einmal etwas sagen und unterschreiben. Da habe ich auch ein anderes Paket benutzt. Lassen Sie uns den Code überprüfen, unautorisierter Hinweis. Das war wichtig. Das sollte es nicht sein, ich sollte diesen Fehler nicht bekommen. Jet ist abgelaufen, nicht autorisiert. Mal sehen. Ich habe das offensichtlich, dass es früher funktioniert, dass es gerade da war , dass es hier ist. Ich finde es lustig. Gehe zu diesem Splashscreen und melde dich ab. Jetzt. Mal sehen, was veraltet ist. Okay. Das abgelaufene Token ist abgelaufen. Lass uns sehen. glaube ich nicht. Ich habe irgendeinen Fehler gemacht. Lass uns einchecken. Überprüfe und sieh nach. Okay, und jetzt ist alles in Ordnung. Ich weiß nicht, was vorhin der Editor war, aber ich melde mich einfach ab und an. Und wie Sie sehen können, ist der Cent da auschecken? Einchecken. Wir haben alles. Das war's. Das war's für dieses Video. Ich denke, wir haben hier viel getan. Während der nächsten Sitzung. 17. Anwesenheitstisch und Service-Kurs: Hallo, willkommen zurück. Wie Sie sehen können, haben wir die Daten und die Benutzerdaten in Ordnung, aber jetzt müssen wir am Markt und der dichten Funktionalität arbeiten . dafür zunächst Lassen Sie uns dafür zunächst eine neue Tabelle erstellen. Drinnen beaufsichtige und benenne es. Sie können es Teilnahme nennen. Anwesenheit, deaktiviert, vorerst Sicherheit auf Zeilenebene und Echtzeit aktivieren, da wir diesen Verlauf später anzeigen werden. Jetzt. Die erste Spalte lautet Mitarbeiter-ID, Fremdschlüssel, ein Schlüssel, zwei, Mitarbeiter. Und die Idee hier ist die RTD not done Mitarbeiter-ID dieses Kunden, weil das kein Primärschlüssel ist. Dies ist der Primärschlüssel. Fremdschlüssel können unbeschriftet sein. Einem Primärschlüssel zugewiesen. Dann gib ihm ein Datum vom Typ Text. Dann checken Sie ein. Es wird den Texttyp lesen. Dann checken Sie aus. Es wird dx, dy sein. Hallo. Kay. Also speichere alles, ich überprüfe das gerade. Ja, Mitarbeiterausweise, ihr Datum ist da. Jep. Speichern. Es fügt hinzu. Okay, das ist erledigt. Jetzt hier. Gehen Sie zu Modellen und lassen Sie uns vorerst ein Modell erstellen, und dann die Datei und dann modellieren Sie Punkt, Punkt, sagen wir Klasse. Und dann klüger um Null. Zeichenketten-ID. Kaufen, auf dem Laufenden sein. Inzwischen. War das Deck in der letzten Saite. Das kann jetzt Level sein. Schaut gut aus, bis sie sterben. Erstellt am, okay. Lassen Sie uns den Konstruktor erstellen , der akzeptiert, dass dieser Wert übernommen wird. Dieser Punkt ist erforderlich, dieses Punktdatum ist erforderlich. Es gibt keinen Check-in. Aber im Fall der Kaufabwicklung verwenden wir nicht erforderlich, sondern wird diesen Checkout und dann erforderlich, dieser Punkt hat ihn erstellt. Jetzt holen wir uns die drei. Und dann klüger und klüger Punkt Rahm. Jason wird eine Karte mit den dynamischen Daten von Jane senden . Und es ist geschafft. Und dann intelligenter. Jetzt hier, auch zur Kasse. Daten-Mitarbeiter-ID. Dann. In ähnlicher Weise lautet der Spaltenname Jack in. Kopieren und einfügen. Auschecken. Und das wird am erstellt und das wird mit einem Zeitstempel versehen. Also müssen wir das Datum und die Uhrzeit analysieren, die Balken sind, weil uns die Supervisoren kein Datum/Uhrzeitformat geben. Also werden wir hier einfach das Format ändern. Jetzt. Um mit diesen Dingen zu arbeiten, erstellen wir einen neuen Dienst dafür. Gehen Sie zu Dienste erstellt und erstellen Sie ein Dateilimit. Dann Service Dot Dot. Lassen Sie uns diese Datei erstellen. Teilnahme, Umfragen, Antrag, Änderungsnotiz des Käufers. dann, wie Sie sagten, Erstellen Sie dann, wie Sie sagten, eine Spa-Basisklasse und beaufsichtigen Sie den Isabel Dos Base Dot Instance Dot Client. Dann, und dann modellieren Sie, machen Sie es vorerst zu einem unbeschrifteten . Dann hole ich mir das heute. Sie reißen das Fälligkeitsdatum um und diesmal nach unten um und . Nicht jetzt. Als nächstes haben wir den Boolean. Boolean ist darin enthalten, dass der Dienst Kopieren und Einfügen ist. Und ich erinnere mich, dass wir diesen booleschen Wert hier nicht verwenden. Wenn Sie möchten, können Sie es später einfach entfernen. Jetzt haben wir diesen neuen Anbieter, der zur Hauptpunktdatei geht. Jetzt haben mehrere Anbieter diesen Namen erwähnt, das ist die Anwesenheitsservice-Datei. außerdem in der Punktpunktdatei der Konstanten Erstellen Sie außerdem in der Punktpunktdatei der Konstanten eine neue statische Konstante. Dann werden sie, sie werden sich dann so verdichten. Also ja, das ist es. Das war's für dieses Video. Im nächsten Video werden wir an den Funktionen arbeiten , um das herauszufinden und dann an Status und Markt. Und dann Danke. 18. Funktion zur Kennzeichnung der Anwesenheit: Hallo, willkommen zurück. In dieser Sitzung werden wir den Anwesenheitsbildschirm vervollständigen und all diese Funktionen erstellen. Lassen Sie uns also eine Funktion erstellen, um den Status abzurufen. Die wichtigsten Anwesenheitsumfragen finden Sie hier. Und jetzt. Lassen Sie die Zukunft der Funktion gestalten und zur Anwesenheit kommen. Zunächst prüfen wir, ob der Mitarbeiter heute teilweise markiert hat oder nicht. Wenn ja, werden wir diese Daten in unserer Anwesenheitsliste intelligenter speichern . Das heißt, was nicht liberal ist. Lassen Sie uns eine andere Liste durchgehen. Das Ergebnis ist, dass es reichen wird. Also Bobbys Punkt, ab dem sie Konstanten waren Punkt, dann Stabil, Punkt, Select, Punkt gleich. Also müssen wir die Mitarbeiter-ID überprüfen. Die Mitarbeiter-ID entspricht dem Wert. Überwachen Sie den Punkt, die aktuelle Benutzer-ID. So wie das. Okay? Dann werden wir prüfen, ob das Ergebnis nicht leer ist, das heißt, wir haben zumindest einige Anwesenheitsdaten. Dann entspricht das Anwesenheitsmodell dem Anwesenheitsmodell von Jason. Der Ergebnispunkt steht an erster Stelle. Und am Ende werden wir die Zuhörer über die Daten für dieses bestimmte Datum informieren . Und ich habe es auch vergessen. Hier müssen wir auch diese Daten überprüfen , weil sie auf dem neuesten Stand sind und enden. Das Datum entspricht dem heutigen Tag. Dass das wichtig ist, liegt auf der Hand, weil in dieser Kolumne viele Personen anwesend sein werden, aber dieses bestimmte Datum und dieser bestimmte Mitarbeiter werden nur einer sein. Deshalb habe ich zuerst result verwendet. Das ist der Knaller und um heute die Teilnahme zu bekommen, das heißt, ich zeige euch auch, worüber sie mal reden. Dieser heutige Status. Okay. Dann jetzt die wichtigste Funktion, das Stanzen, um die Anwesenheit zu markieren. Also lasst uns das auch erstellen. Schreiben wir eine Zukunftsmarke. Die Besucherzahlen sinken. Wir benötigen die Glockenkontexte. Jetzt überprüfen wir hier zuerst, ob Mitarbeiter für diesen Tag eingecheckt hat oder nicht. Wenn nicht, fügen wir neue Daten für diesen Tag ein. Und wenn ja, werden wir diese Daten nur mit dieser Check-Out-Zeit aktualisieren , weil der Benutzer bereits eingecheckt hat. Schreiben wir also, wenn die Überprüfung des Anwesenheitsmodells gleich Null ist, wie hier, dann fügen wir eine Gewichtung hinzu. Also Bobbys Punkt aus Konstanten, Punkt Anwesenheitstabelle Punkt einfügen. Okay? Jetzt fügen wir natürlich die Daten ein. Hier. Die Mitarbeiter-ID wird super sein. Oder geben Sie die aktuelle Benutzer-ID ein. Dann werden sie fällig sein. Überprüfen Sie dann, ob der Check-in im Datumsformat, Stunden und Minuten erfolgt. Punkt Parlament, Datum und Uhrzeit Punkt jetzt. Okay? Dies wird also ausgeführt, wenn der Benutzer nicht eingecheckt hat und angenommen, der Benutzer hat eingecheckt, dann werden wir es sofort tun. Überwachen Sie die Konstanten in der Anwesenheitstabelle. Punktualisierung, okay? Wir werden den Wert aktualisieren, aber wenn dieser Punkt gleich ist, entspricht Mitarbeiter-ID um diese Kunst zu überwachen. Und hier wollen wir Alice natürlich nicht, nur das heißt, wir müssen noch etwas anderes lesen. Wenn andernfalls das Anwesenheitsmodell Checkout gleich Null ist, das heißt, das Prüfen ist da, aber das Auschecken ist keine Kunst. Aktuelle Benutzer-ID mit Punkt. Und wieder überprüfen wir, ob Punkt gleich ist, nur für dieses bestimmte Datum. Sie müssen also sicherstellen, dass wir nur dieses Datum aktualisieren. Okay, das ist sehr wichtig. Gehen Sie jetzt zum Update-Bereich, der sich hier befindet. Hier werden wir nur diesen Checkout aktualisieren. Checken Sie so aus. Kopieren Sie auf ähnliche Weise diese Zeile und fügen Sie sie hier ein. Okay? Und jetzt haben wir das Wenn, Else-if und dann endlich S, das heißt, Check-in ist auch nicht Null. Checkout ist auch nicht null. Dann zeigen wir eine Snackbar mit Utils Dot Show. Und die Nachricht wird sein, Sie haben heute schon ausgecheckt. Okay. Dann werden wir ganz am Ende die Teilnahme an Get Today anrufen. Das ist so, dass es die neuesten Daten erhält und die Benutzeroberfläche aktualisiert da wir die Benachrichtigungs-Listener hier haben. Es werden also die neuesten Daten aktualisiert. Mit diesem Anwesenheitsmodell, C, wie Sie sehen können, aktualisieren wir das und dann noch ein Modell hier. Okay? Ich weiß, dass es viel Code gibt, aber es ist sehr einfach. Wenn Sie irgendeine Art von Anwendung haben, dann wissen Sie, dass wir nur einen Datensatz erstellen, aktualisieren und löschen. Jetzt haben wir die Funktion bereit. Jetzt ist es an der Zeit, dass wir Änderungen an der Benutzeroberfläche vornehmen. Gehen Sie also zum Anwesenheitsbildschirm mit Punkt. Das erste, was wir tun werden, ist, den Init-Zustand aufzurufen und dann einen breiteren Kontext zu setzen. Wir müssen hier Anwesenheitsservice, Punkt, Datum und Dichte schreiben . Zuhören wird falsch sein. Da ich das von nun an nur noch erledigen möchte. Was ich dann will, ist hier, ich beziehe mich auf Null. Dann streichen die Dienstanbieter die Kontexte ab, das Gleiche gilt für Kontexte. Und jetzt haben wir das und dann den Dienstleister hier. Ich rufe diese Funktion hier nicht auf, da diese dafür mehrfach aufgerufen wird, ohne Grund, wird auch diese Anwesenheit aufgerufen. Deshalb habe ich es zum ersten Mal nur im Init-Zustand aufgerufen. Dann lass uns zu diesem Kinder-Check-in gehen. Okay. Nun, hier, dieser Check-In-Text, müssen wir ändern und diese Dinge einfach konstant machen, weil diese Dinge konstant sein werden. Und Li, diese Texte werden sich ändern. Das werden also Anwesenheitsumfragen, Anwesenheitsmodell, Überprüfung sein. Wenn es Null ist, schreiben Sie die MD-Zeit oder schreiben Sie die Check-In-Zeit. Also diese einfache Ausgabe an Ort und Stelle, das. Wenn es Null ist, geben Sie dies aus. Okay. Kopieren Sie in ähnlicher Weise diesen Code. Gehen Sie hier zum Checkout-Text, es wird Checkout sein, genau zu diesem Zeitpunkt hier. Wenn es Null ist, verwenden Sie einfach den Platzhalter und machen Sie ihn zu einer Konstante. Es gibt auch Dinge, die konstant sein werden. Ich weiß, dass es viele Konstanten gibt. Okay? Also das haben wir jetzt gemacht. Ich überprüfe nur , ob alles abgeschlossen ist und habe nichts übrig gelassen. Okay? Jetzt müssen wir den Markt exekutieren und dann auf die Rutsche drücken. Dann verwenden sie diese Folie zum Ein- und Auschecken. Also hier kommt die Folie zurück, ja, diese. Zuallererst müssen wir diese Texte bedingt ausgeben. Wir werden es also wieder tun, Teilnahmeumfragen. Anwesenheitsmodell. Wenn der Check-In gleich Null ist, dann richtig? Schieben Sie, um einzuchecken. Hier klicken Sie mit der rechten Maustaste zum Check-in oder leicht zum Auschecken. Das war's. Dann haben wir das Textil auf Submit, machen es zu einem Waschbecken und rufen direkt Anwesenheitsumfragen auf dem Markt als im dichten Kontext auf. Nachdem dies abgeschlossen ist, stellen wir diese Taste so ein, dass der Benutzer den Schieberegler erneut verwenden kann. Wir haben all die Dinge getan. Es ist Zeit, wir speichern und testen unsere Anwendung. Mal sehen, ob ein Fehler vorliegt oder nicht. Oh, okay. Ich werde in der Anwesenheit hierher gehen und wir werden uns einfach erfrischen. Und lass uns sehen. Hier gibt es keine Daten. Jetzt. Wenn ich einchecke, schaue nach, wann der Check-in ist. Gibt es 18, 39. Offensichtlich ist dieses Mal im Emulator. Deshalb denken Sie vielleicht, okay, hier ist die Uhrzeit anders, hier ist die Uhrzeit anders, aber zumindest ist die Uhrzeit des Mobilgeräts eingecheckt. Also lass uns gehen und nachschauen. Siehst du. Wir haben bei der Mitarbeiter-ID Schulden Check-In erstellt , Check-Out ist Null. Das bedeutet, dass der Check-in perfekt funktioniert und wir warten einfach auf, t. Das heißt, damit ich auschecken und Sie wissen lassen werde , ob es funktioniert oder nicht. Okay für den Geschmack da. Lass uns auschecken. Die Kaufabwicklung ist auch dort erledigt. Es funktioniert. Wenn ich jetzt nachsehe, haben wir den Checkout-Wert nur in dieser Tabelle aktualisiert. Jetzt. Angenommen, der Benutzer versucht erneut, auszuchecken. Dann wird hier angezeigt, Sie haben heute schon ausgecheckt. Das heißt, du musst morgen wiederkommen. Schließlich funktioniert der Anwesenheitsbildschirm einwandfrei. Die gesamte Funktionalität funktioniert einwandfrei und der Code enthält keinen Fehler. Im nächsten Video werden wir an der Anwesenheitshistorie arbeiten , damit der Benutzer seine Busbelegung sowie die An- und Abreisezeit sehen kann seine Busbelegung sowie die An- und . Danke. 19. Funktion zum Abrufen der Anwesenheitshistorie: Hallo. Willkommen zurück. Jetzt ist es soweit. Wir arbeiten an der Anwesenheitshistorie. Das ist unser Kalenderbildschirm. Dafür. müssen wir ein neues Paket hinzufügen. Also öffne ein Terminal und ich füge mein Ohr hinzu, sodass der Benutzer das Jahr und den Monat ändern oder auswählen kann , für die er die Teilnahme erhalten möchte. Das war's. Wenn ich zur Pub Spec Dot YAML-Datei gehe, können Sie hier sehen, dass ich den einfachen Monat hier habe, größer. Okay? Als Nächstes schreiben wir die Funktion def, um die Anwesenheitshistorie abzurufen. Also geh dorthin und dann den Servicepunkt hier. Ganz oben. Ich werde eine Variable erstellen , die einen Berg von gesuchten Daten enthält. Also hier überlege ich nur, wo ich schreiben soll. Schreiben wir es hier. Belastung. Die Teilnahme beträgt drei. Der Monat entspricht dem apikalen m-, M- , m- und dem kleinen Punktformat y, y, y, y. Die Zeit. Jetzt k. Dann werde ich da hingehen. Ich werde es dort ankommen lassen, Teilnahme einholen, Monat der Geschichte. Und ich werde einen Wert dafür senden. Und dann werde ich festlegen ihre Anwesenheitshistorie festlegen. Monat. Wir werden dann hier Wert legen. Wir möchten, dass der Anwesenheitsmonat dem Wert entspricht und die Zuhörer benachrichtigen. Wir sind also einfach nur Dies ist der Monat, in dem die Anwesenheitshistorie gründlich überprüft wird. Also ganz am Anfang wird der Monat nur tot gemeint sein. Und wenn du willst, kannst du es ändern. Deshalb verwende ich das , damit er die Daten bereits erhält, wenn es zum Anwesenheitsbildschirm geht , zumindest für diesen Monat , zumindest für diesen Monat. Jetzt erstellen wir eine Funktion, um eine Zukunft zurückzugeben , wobei diese Datumsspalte für die Suche Montagnier überprüft wird. Also lass uns gehen. Stimmt. Intelligente Anwesenheitsliste für die Zukunft. Holen Sie sich die Teilnahme, Geschichte. Ein Waschbecken. Und Diane, okay. Nehmen wir zunächst an, die Abfrage nach Analystendaten entspricht den dunkelbraunen Konstanten Await Superbus. Dann stabil. Punkt auswählen Punkt entspricht Spalte, Mitarbeiter-ID, entspricht Kunst beaufsichtigen, aktuelle Benutzer-ID. Und dann machen wir so etwas wie eine Punkttextsuche, weil wir das Datum in einer Zeichenfolge haben. Also speichern wir auch hier die Daten in Zeichenketten, also werden wir einfach vergleichen. Das heißt, die Abfrage besteht doppelten Anführungszeichen und dann in den einzelnen Codes und dem Monat der Anwesenheitshistorie. So wie das. Und die Konfiguration wird Englisch sein. Englisch, so. Reihenfolge, die beim Aufsteigen auf Falsch erstellt wurde. Wie Sie sehen können, haben wir Finalisten. Die Daten entsprechen einem durchschnittlichen Superbus, bei konstantem Start an einem instabilen Punkt die gleiche Mitarbeiter-ID auswählt, die der Supervise-Art-Benutzer-ID entsprechen sollte. Dann Punkttextsuche. Wir werden die Datumsspalte überprüfen und alle Zeilen abrufen, was diesem Monat entspricht. Deshalb schicken wir diesen Anwesenheitsmonat. Und dann sollte die Reihenfolge in absteigender Reihenfolge sein. Danach geben wir die Datenpunktkarte zurück. Wir werden die Daten kartografieren. Wir werden die Teilnahme bekommen. Es wird Anwesenheitsmodell Dot Jason sein. Wir werden jede Teilnahme senden. Und schließlich werden wir diese Daten in eine Zeichenfolge konvertieren , in eine Liste. Dies wird also zu einem Anwesenheitslistenmodell. Das ist also die Funktion. Das war's. Für dieses Video. Wir werden in den kommenden Videos am UI-Teil arbeiten . Danke. 20. Arbeit an der Benutzeroberfläche: Hallo, willkommen zurück. Lassen Sie uns jetzt mit der Arbeit an diesem Kalenderbildschirm beginnen. Hier zeigen wir die Anwesenheitshistorie des Mitarbeiters für einen bestimmten Monat und ein bestimmtes Jahr. Das erste, was wir tun werden ist die Teilnahme des Anbieters. Surveys ist unglaublich ähnlich wie know Vida dot of context. Und ich schrieb, ich sollte es ausschneiden und in den Rechnungs- und Anwesenheitsservice einfügen . Okay. Wir haben den Anbieter. Ja. Sie werden die Kolumne Harlem zurückgeben als die Kinder. Behälter. Der Container gibt die Ausrichtung an die Ausrichtung. Mitte links. Dann margin, const, füge in Sätzen , dass nur links de dop 60 ist. Unterseite. Dann wird Child Const Text sein. Meine Teilnahme. Stil, Textil, geben Sie Duff Schriftgröße 25. Okay. Dann unter diesem Container, Zeile, Domain X steht die Ausrichtung. Die Ausrichtungspunkte verteilen sich gleichmäßig. Hier. Wir werden den aktuellen Monat sowie eine Schaltfläche zur Auswahl eines Monats anzeigen . Schreiben wir also, dass Kinder plus Texte sein werden. Dann dann Umfragen. Teilnahme, Verlauf, Monatsstil werden konstant sein. Decks, ist gestorben. Nun in Größe 25. Dann haben wir eine Gliederungsschaltfläche. Als nächstes ist Woche, Monat. Mach es konstant. Okay. Das ist ein Monat geworden. Machen Sie es vor Ort zu einem Waschbecken. Dann schreibe Pi noch einen. Wählen Sie aus. Die ID entspricht hier dem einfachen Monat, da dies das Paket Dot Show Monday ist. Weil der Dialog hier, wir haben das und wir müssen schreiben, Disable Future ist gleich wahr. Das bedeutet, dass dies zukünftige Jahre unmöglich machen wird. Offensichtlich kann der Benutzer nicht in zukünftige Jahre gehen und seine Anwesenheitshistorie abrufen. Dann werden wir einen großen Monat lang schreiben. Das heißt, wir müssen dieses Datum in unserem eigenen Format formatieren, das überall verwendet wird. Also sagen wir einfach großes M viermal klein vi viermal klein. Dies wird uns helfen, die vorhandenen Daten zu vergleichen. Wir haben Texte oder einen Kanal. Deshalb formulieren wir ein ausgewähltes Datum. Lass uns sehen. Lass es auf diesen einfachen Berg warten. Und dann ändere einfach das bei Mieterbefragungen. Anwesenheit, der Servicemonat wird als Monat ausgewählt. Nun, wenn Sie gehen, das sind die Anwesenheitsumfragen, der Monat der Geschichte. Das ist ein Setter. Siehst du? Wenn wir also den Wert festlegen, wird sich dessen Wert ändern. Und benachrichtigen Sie dann den Hörer, dass der Bildschirm erneut aufgebaut wird. Deshalb werden wir den letzten Monat in den Text aufnehmen. Also, wenn ich es aktualisiere, wenn ich es aktualisiere und sage, wir haben ein Verschiedenes, warum ist dann diese Null hier? Frau denkt nach? Ich weiß nicht, was in deinem Handy ist. Ich hoffe, es gibt keine Natter. Habe alles richtig gemacht. Und dann Tanzgeschichte, m, M, m. Und ich glaube, wir haben diese zusätzliche Zeile gegeben. Deshalb ist das der einzige Grund. Es ist ein sehr dummer Fehler, dass wir sicherstellen müssen , dass diese Dinge miteinander verbunden sind. Also, wenn ich neu starte, und ich hoffe, es ist Charakter, wenn ich eine Brailleschrift sehe, 2023, wenn ich sie auswähle und bis März, dann ist es März. Okay. Das heißt, es funktioniert bis hier. Lassen Sie uns nun den Future Builder erstellen, um die Daten abzurufen , indem wir die Funktion get dependence History aufrufen. Lass uns darunter liegen. Wir werden den Anfang schreiben, dass die Zeile diese Zeile offensichtlich durcheinander bringt. In der Spalte müssen wir x-Bindung schreiben. Dann bist du Chart Builder. Die Zukunft wird es sein, dann Umfragen, bei denen die Anwesenheitshistorie erfasst wird. Hier wird es Kontexte angeben, Kontext wie das Sehen von Schnappschüssen, Schnappschüsse. Jetzt fügen wir hinzu, ob Snapshot das hat, dass sie nichts getan haben. Als Gegenleistung, const. Linearer Fortschrittsindikator. Hintergrund, Farbe, Farben weiß. Und Farbrad, Farben, Grau, so. Und hier, wenn der Snapshot Daten enthält, überprüfen wir auch hier den Snapshot , dessen Datenpunktlänge größer als Null ist. Das heißt, ob es eine Geschichte gibt oder nicht. Wenn nicht, geben wir den untergeordneten Text const center zurück . Und hier in den Texten werden wir keine verfügbaren Daten schreiben. Erstellen Sie den Textstil, Schriftgröße 25. Das war's. Was wir nun tun werden, ist, wenn die Punktlänge des Snapshot-Punkts größer als Null ist, dann geben wir eine Art Widget aus, was wir im nächsten Video tun werden. Danke. 21. Die Verlaufsdaten anzeigen: Hallo, Lass uns im Kalenderbildschirm weiterarbeiten. Nun, hier, wenn der Snapshot diese Datenpunktlänge größer als Null ist, geben wir ein Builder-Widget für Listenansichtspunkte zurück. Hier. Die Anzahl der Elemente entspricht den Snapshot-Punktdaten und der Punktlänge. Artikel. Unten wird es sein. Hier. Es wird Kontexte und einen Index haben. Dann werden wir auf die Idee kommen und dann klüger, da wir wissen, dass Papa stirbt, wenn er in die Art von Anwesenheitsmodell kommt. Also dann, dann, dann sind Daten eine gute Momentaufnahme. Daten. Index k. Geben jetzt den Behälter zurück. Margin, weg. Randeinsätze. Gib ihm nicht nur 12, links, gib ihm 20, rechts, gib ihm 20. Unterseite. Gib zehn. Dann Höhe. 150. Dann Deklaration. Const, Kastendekoration, Farbe, Farben Punkt weiß, Farben Punkt weiß. Dann hat Box Shadow die Farben der Box Shadow, schwarz. Wenn diese sechs Ideen dann verschwimmen, werden zwei zu k versetzt . Offensichtlich richtig? Jetzt. Warte einfach. Wir haben den Box Shadow. Dann danach, diese Out-the-Box-Dekoration, nicht Saudi, nach der Schachtel. Aber das stimmt. Randradius, Randradius Punktradius , dieser Kreis 20. Jetzt gib das Kind in den Behälter. Und der Container reiht es ein. Die Hauptausrichtungsmatrizen sind vorhanden, Achsenpunktmittelklasse wird ebenfalls zentriert sein. Dann werden wir diese Kinder haben. Also K, wie Sie hier sehen können, Kinder. Dann lasst uns jetzt an diesen Kindern arbeiten. Die ersten Kinder werden erweitert. Containerrand, Konstante, Hinzufügen von Sätzen. Am Ende. Mal sehen, welchen Wert wir geben werden. Ich überprüfe den Regler auf Const, Box Decoration. Farbe, Farben, roter Akzent, Randradius, Randradius Punkt, Radius, kreisförmige Punkte 20. Okay. Dann gib diesem Behälter ein chirales Zentrum. Nun, wir werden das Datum und das Datumsformat hier drinnen einhalten , oder? Großbuchstabe E Dann ändere diese Zeile in diese. Wir werden die Daten haben, den Sonntag, Montag und das Datum. Format. Anwesenheitsdatum wurde erstellt, da dies genauso wie das Datum sein wird. Es wird also viel einfacher sein, es zu ändern. Dann gib ihm etwas Stil. Konst. Textil. Bei der Größe wird es sich um eine dünne Farbe handeln. Punkt weiß. Schriftstärke, Schriftstärke, fett. Okay. Wir haben diese und danach erweiterte, richtig, eine weitere erweiterte Region. Wir haben eine Spaltenmatrix ist Ausrichtung Haupt Extrazellulär mein Rechenzentrum, Querachsenausrichtung Kreuz x ist Element , dass Zentrum als Kinder. Darin checken Kinder ständig per SMS ein. Jetzt zeigen wir die An- und Abreisezeit an. Der Stil gab ihm einen gewissen Textstil. Schrift, Größe, Duan De, Farbe, Schwarz. Dann weg, gib einfach, gib ein Kästchen, Gewicht. Das Kind teilt das auf. Das ist dasselbe wie der Bildschirmtext, den ich damals nicht gemacht habe. Dann geben Sie Punkt, Punkt, Check-in an. Stein, const, textile, Schriftgröße, gib 25 an. Okay. Wir haben die Kolumne hier. Wir haben das erweitert. Und dann kopiere auf ähnliche Weise diese Jacqueline, die expandiert und eingefügt wird. Und wir haben Hauptachsen, Querachsen. Dann wird der Text zur Kasse geschickt. Das ist okay. Wir haben den Teiler dann hier, oder? Checkout Punkt toString. Und wenn es null ist, dann schreibe diesen Platzhalter so. Und nachdem dies erweitert wurde, geben Sie ihm einfach ein Größenfeld , das sich in dieser Zeile befindet. Denken Sie daran, geben Sie mir außerhalb dieses erweiterten Feldes ihre Größe. Führen Sie jetzt die App aus. Und richtig tritt immer noch auf, wenn es in meinem System die Autorisierung und so angezeigt wird . Das liegt daran, dass ich einen Emulator verwende , weil ich die gesamte Anwendung auf einem echten Gerät getestet habe die gesamte Anwendung auf einem und sie einwandfrei funktioniert hat. Also ich denke, wenn du es auf deinem Gerät probierst, wirst du diese Art von unautorisierten und abgelaufenen nicht bekommen. Und jetzt gehen wir zum Splashscreen. Melden Sie den Benutzer ab. Nun k i. Nun diese Fehler, du wirst dieses Fehlerszenario nicht niedriger bekommen , weil das momentan ein virtuelles Gerät ist und ich glaube dass die Zeit auch anders ist als R. Also werde ich nochmal gehen und mich anmelden. Ich habe diesen Check-Out. Und wenn ich auf den Bildschirm gehe und sehe, dass ich die Daten und wenn ich einen Monat auswähle und März gebe, dann sind keine Daten verfügbar. Wenn ich eine Brailleschrift auswähle, dann haben wir das An - und Abreisedatum. Und wenn du zum Kalender gehst, glaube ich nicht. Sie benötigen, dass es ein leeres Set gab. Das brauchst du nicht weil ich finde, dass der Abstand und alles gut aussehen. Das ist so, dass wir ganz am Ende die Größenbox gemacht haben. Also das ist der, deshalb haben wir diesen Raum hier. Weil aufgrund der erweiterten Version alles gleich viel Platz beansprucht. Aber ich glaube, das sieht anständig aus. Das ist es also. Unser Bildschirm mit der Anwesenheitshistorie funktioniert ebenfalls einwandfrei. Also lasst uns in diesen zukünftigen Videos weitermachen. Danke. 22. Funktion zum Abrufen des Standorts des Mitarbeiters: Hallo, willkommen zurück. In diesem Video werden wir eine Funktion implementieren, mit der der aktuelle Standort des Benutzers ermittelt werden kann. Während wir also an der Kasse einchecken, speichern wir auch den Standort des Benutzers, damit der Arbeitgeber leichter überprüfen kann , ob der Mitarbeiter im Büro ist oder nicht. Also machen wir einfach den Standort. Ich werde nicht die Entfernung überprüfen und so. Aber mit diesen Daten können Sie natürlich sehr einfach die Entfernung zum Büro und zum Benutzer überprüfen . Um diese Funktion zu implementieren, verwende ich nun das als Location bekannte Paket. Hier. Das ist das Paket. Kopieren Sie es einfach und fügen Sie es in die Pub-Spec Dot YAML-Datei ein. Mit diesem Standort erhalten wir den Breiten- und Längengrad. Also stopp es einfach und starte die App erneut. Weil wir ein neues Paket installiert haben. Gehen Sie einfach und beginnen Sie mit dem Debuggen. Und wie gesagt, wir werden den Breiten- und Längengrad des Benutzers speichern. Und später, wenn Sie möchten, können Sie das Paket name is geocoding verwenden , um den Straßennamen, die Stadt, das Land und andere Details aus der in diesem Paket bereitgestellten Ortskoordinate abzurufen. Es liegt also an dir. Der Paketname ist Joe. Warte, ich werde es dir auch zeigen. Dieses Mal passiert es mit dem Codieren. Ich glaube, es war etwas zum Programmieren. Aber Sie sehen, das ist der Name Geokodierung. Jep. Sie können das selbst verwenden, wenn Sie möchten. Jetzt, an dieser Stelle, werde ich diesen Code verwenden und ich werde diesen Code sehen, den ich verwenden werde. Lassen Sie uns nun eine neue Serviceklasse erstellen. Insights-Dienste. Kreative Datei. Standort, Service, Punkt, einfach richtiger Ortungsservice. Dies ist nicht der Anbieter. Und teile es auf. Ich werde Material importieren. Dann importiere ich den Standort. Das war's. Erstellen Sie nun eine Instanz des Standorts. Dann, richtig? Standort, Daten. Daten protokollieren. Erstellen Sie dann eine Funktion, die eine Karte der Zeichenfolge Double , also Breitengrad und Längengrad, zurückgibt . Und manchmal kann es Null sein. Initialisieren und Standort abrufen. Wir werden hier die Vorstandssache machen. Standort, Kontexte, Kontexte, um die Snackbar anzuzeigen. Jetzt wird der Code wie bei Booleans sein. Umfragen ermöglichen Erlaubnis, Status. Erlaubnis. Bewilligt. Prüfen Sie zunächst, ob der Standort aktiviert ist oder nicht. In diesem Gerätedienst und es ist gleich, auf den Standort zu warten. Dienste aktiviert. Wenn Service nicht aktiviert ist, setzen wir Service Enable auf 08. Service zur Anforderung von Standortpunkten. Wenn dann der Service aktiviert ist, nochmal Phrase, dann waren wir wie die Utils Dot Show Snack Bar. Bitte. Standort aktivieren, Dienst wie diesen. Und wir werden hier Null zurückgeben. Der andere Code wird nicht ausgeführt. Das wird also der Fall sein, wenn der Dienst ihnen nicht aktiviert ist. Okay? Dann werden wir nachschauen. Wenn der Dienst aktiviert ist. Bitten Sie dann den Benutzer um die Erlaubnis zum Standort. Das bedeutet, dass der Benutzer ein Pop-up erhält , über das diese App auf den Standort zugreifen kann. Jetzt haben wir also die Erlaubnis erteilt, was gleichbedeutend mit dem Warten auf den Standort ist , der die Erlaubnis hat. In ähnlicher Weise schreiben wir, ob erteilte Erlaubnis dem Berechtigungsstatus Punkt verweigert entspricht . Fügen Sie dann erneut die Erlaubnis hinzu, die dem Standort warten entspricht , und fordern Sie die Erlaubnis an. Und auch hier gilt Wenn eine erteilte Genehmigung nicht den Genehmigungen entspricht, wurde der Schreibtisch erteilt. Dann die Utils Dot Show Snackbar. Bitte geben Sie Standort, Überschreitung von hier aus Null zurück. Und wenn das nicht der Fall ist, ist alles in Ordnung. Nachdem die Erlaubnis erteilt wurde, geben Sie die Koordinaten zurück. Einfach Logdaten schreiben entspricht waiting location that getLocation. Und gib es von hier zurück. Eine Karte mit Daten. Sei der Dude gleich dem Breitengradelement für Logdaten für Logdaten Breitengradelement . Hier. Dieses Double kann auch Null sein. In ähnlicher Weise entspricht der Längengrad dem Logdatenpunkt edu. Sie fragen sich vielleicht, was ist das für ein Code? Wenn Sie also zur offiziellen Dokumentation gehen, erhalten Sie hier den genauen Code. Du kannst also einfach lesen oder kopieren oder was auch immer du willst. Es liegt an dir. Wir hören uns keine Änderungen im Hintergrund an und aus diesem Grund nehmen wir keine Einstellungen vor. Das ist die Erlaubnis und der gesamte Zugriff auf den Vordergrund und den Hintergrund. Diese Art von Sachen. 23. Standort des Geschäfts beim Check-in: Okay, jetzt, da wir diese Daten darin und dann stabil speichern werden, müssen wir einige Änderungen vornehmen. Gehen Sie also zum Anwesenheitsmitarbeiter. Und bei dieser Teilnahme bearbeiten Sie die Tabelle und fügen Sie eine Spalte hinzu. Ort des Check-ins, der im Kartenformat sein wird , ist Jason. Und ähnlich wie beim Auschecken. Dies wird ebenfalls im JSON-Format sein. Speichern Sie es einfach. Jetzt müssen wir den Markt und dann seine Funktion ändern. Hier in Dänemark erlaubt die Anwesenheitsfunktion die Teilnahme also erlaubt die Anwesenheitsfunktion die Teilnahme nur, wenn diese Standorterlaubnis erteilt wurde. Also hier zunächst map, nullable, get location entspricht await location, service, initialize und getLocation. Okay? Dann schreibe ich, wenn getLocation nicht gleich null ist, dann führe ich es nur aus. Dies sind Codes von hier, kopieren Sie sie und fügen Sie sie hier ein. Okay? Und hier müssen wir diesen Ort natürlich speichern. In der Beilage werden wir also den Ort mit einer großen GetLocation einchecken. Und in ähnlicher Weise wird beim Auschecken gelesen, dass der Checkout-Standort getLocation ist. Andere Dinge werden gleich sein. sind wir, denken Sie daran, dass wir einfach diesen Standort speichern . Sonst nichts. Wir werden diesen Standort nicht verwenden, aber zumindest wissen Sie, wie Sie den Standort ermitteln können. Das Letzte, was wir tun müssen, ist, ihr Anwesenheitsmodell zu ändern. Stimmt es? Finale, Karte. Standort einchecken. Inzwischen. Standort auf der Karte auschecken. Hier. Es wird dieser Punkt-Check-In-Ort sein, dieser Punkt Check-Out-Ort, also wäre er nicht erforderlich. Denken Sie auch hier daran. Wir werden schreiben, dass der Ort des Check-ins als Daten angegeben wird. Standort einchecken. Die Daten zum Checkout-Standort werden als Check-Out-Standort verwendet. Das ist es also. Ich werde diese Daten, die Anwesenheitsdaten, entfernen , da ich möchte , dass dieser Check-In-Ort ebenfalls gespeichert wird. Lassen Sie uns die Anwendung testen. Siehe Check-in, Check-out ist nicht da. Wenn ich also rutsche, wird nach dem Standort des Geräts gefragt, ich akzeptiere es. Lass uns sehen. Ich hoffe, es gibt keinen Adder, weil ich weiß, dass bei einem physischen Gerät kein Fehler auftritt, aber bei diesem Emulator bin ich mir nicht sicher . Lass uns sehen. Es gibt keinen Fehler, wann. Also hier in Anwesenheit, Bildschirm, Markt und Linse. Aber was ist, wenn der Standort in Ordnung ist? Angebote zeigen die Snackbar nicht an. Der Standort des Werfs kann nicht ermittelt werden. Welche Farbe wird rot gefärbt? Denn offensichtlich ist Gott und mach dich daran , damit der Zustand aktualisiert wird. Aber schauen wir mal, was passiert ist. Wenn wir das überprüfen. Okay, wie Sie hier sehen können, funktioniert es nicht. Was ich tun werde, ist, dir das zu zeigen , als in einem echten Gerät zu laufen. Jetzt habe ich mein echtes Gerät angeschlossen und lassen Sie uns überprüfen, ob dieser Standort funktioniert oder nicht. Also, wenn ich diese leicht einchecken muss, ja. Ich werde nach meinem Standort fragen und ich habe ihn angegeben. Und sieh. Wir haben diesen Check-in und dieser Standort ist in etwa erfolgreich, glaube ich. Also. Hier haben wir den Check-In-Standort. Wie Sie sehen können, funktioniert es perfekt in einem echten Gerät. Bisher war das einzige Problem, dass es sich um einen Android-Emulator handelte. Das ist der einzige Grund, sonst funktioniert es gut. Wenn ich erneut auf Checkout klicke , haben wir den Ort und die Uhrzeit der Kasse aktualisiert. Das war's für den Ort und die Geschichte. Diese beiden Seiten funktionieren einwandfrei. Im nächsten Video werden wir an diesem Profilbildschirm arbeiten. Danke. 24. Funktion, um alle Abteilungen zu erhalten: Hallo, willkommen zurück. Jetzt beginnen wir mit der Arbeit an dem Profilbildschirm , auf dem alle Abteilungen abgerufen und der Benutzername aktualisiert wird. Lassen Sie uns dafür zunächst ein neues Modell für die Abteilung erstellen. Richtig? Abteilung Punkt, Punkt, Abteilungsmodell, Punkt, Punkt, Punkt. Dies ist eine neue Modellklasse. Der Teil bedeutete Modell. Letzter Int. Wir werden die ID haben, also die Abteilungs-ID und die binäre Zeichenfolge. Wir haben bereits einige Abteilungen in ihre Datenbank aufgenommen. Abteilungsmodell erforderlich, diese Punkt-ID erforderlich, dieser Punkttitel, dann erstellen Sie eine Fabrik. Abreise, als ein Modell von Jason dynamische Kartenzeichenfolgen gesendet hat. Dann drehen sie sich um. Abteilungsmodell. ID steht für Daten, ID und Titel sind Daten und Schlüssel ist Titel, da es sich um ein Kartenformat handelt. Okay, wir haben das Modell fertig. Jetzt. Gehen wir zu den DV-Diensten. Da wir es dem Benutzer ermöglichen, seinen Namen und seine Abteilung in seinem Profilbildschirm zu aktualisieren . Lassen Sie uns also Panchen erstellen, um alle Abteilungen in diese DV-Dienste einzubeziehen. Also hier, das stimmt. Du hast gejubelt. Breit. Holen Sie sich Abteilungen. Asynchron. Jetzt werden wir zuerst einige Zustandsvariablen erstellen. Zuerst werden wir die Abteilungen auflisten. Modell. Abteilungen ist vorerst die leere Liste. Und wir werden eine Ganzzahl-Mitarbeiterabteilung haben, das ist die aktuelle Mitarbeiterabteilung. Dies wird auch geändert , wenn der Benutzer etwas anderes auswählt. Also wirst du es in gewisser Weise verstehen. In diesem Abrufen der Benutzerdaten können wir nun hinzufügen, können wir hinzufügen ob die Mitarbeiterabteilung gleich Null ist, dann den Mitarbeiter angeben. Wenn es Null ist, dann richtig, Mitarbeiterabteilung entspricht dem Benutzermodell. Die Abteilung des Benutzermodells tut nichts. Also, was ich getan habe, war, du musst das verstehen. Das heißt, dieser lustige Chen kann mehrfach angerufen werden, das heißt, wann immer wir ihn aufrufen, benachrichtigen wir die anwesenden Zuhörer , Anwesenheitsbildschirm. Diese Funktion wird es aufrufen, da es dort ein zukünftiges Testament hat. Dann wird also der Abteilungswert zurückgesetzt, der Teil, wenn der Wert. Deshalb verwenden wir eine Bedingung , der nur dann ein Wert zugewiesen wird, wenn eine Abteilung leer ist. Das ist zum ersten Mal. Ich hoffe du hast das verstanden. Um Lee und der Zeit zuzuweisen. Das war's. Jetzt im Bauch alle Abteilungen. Schreiben wir eine Funktionsliste. Das Ergebnis ist ein Gewicht. Superbus, Abschlussball, konstante Startabteilungstabelle, diesmal Punkt auswählen, wir wählen alle Abteilungen aus. Dann fügen wir alle Abteilungen hinzu, was dem Ergebnis entspricht . Punktkarte. Hier werden wir eine Abteilung haben. Dann richtig? Abteilung. Hier müssen wir Abteilungsmodell aus JSON schreiben und wir werden die Abteilung schicken. Schließlich alles auflisten und dann die Listener benachrichtigen , um den Wert zu aktualisieren. Das war's. Denn hier verwenden wir den Listener, der in die Benutzeroberfläche aufgenommen wird. Wir werden die Benutzeroberfläche mit dieser Variablen verbinden. Es ist, wir werden uns diese variablen Daten anhören. Deshalb. Das ist es also. Wir haben eine Funktion erstellt, um alle Abteilungen in den kommenden Videos zu sehen. Wir werden auch eine Funktion zum Aktualisieren des Profils erstellen. Im Juni. 25. Funktion zur Aktualisierung von Profildaten: Hallo, willkommen zurück. In diesem Video werden wir die Def-Funktion schreiben, um die Profildaten im DB-Service zu aktualisieren , oder? Zukunft. Profil aktualisieren. Wir benötigen den Namenskontext Bill. Und wir werden einfach warten. Das sollte ein Waschbecken entfernt sein. Es ist super Möglichkeiten, dass Rahm, konstanter Start, Mitarbeiter Tabelle Punkt aktualisieren Name. Wir werden mit ihrem Namen aktualisieren. Und Abteilung. Wir werden mit dem Wert der Mitarbeiterabteilung aktualisieren, der die nächste Statusvariable ist. Es ist hier. Von Anfang an. Wir werden es mit dem vorherigen Wert initialisieren. Und hier müssen wir den Punkt gleich verwenden , weil wir live ändern müssen wo ID gleich ist, um die aktuelle Benutzer-ID zu überwachen . Nachdem es fertig ist, werden wir die Dodge Snack Bar nutzen. Verwandtes Profil, erfolgreich aktualisiert. Und wir werden den Farben Dunkelgrün Farbe geben. Und wir werden die Zuhörer benachrichtigen. Name in der Anwesenheitstabelle, der die Willkommens-ID oder der Willkommensname ist, wird also automatisch aktualisiert, wenn wir hier die Option „Listener benachrichtigen“ verwenden. Gehen wir zum Profilbildschirm. Hier. Wir müssen anfangen, daran zu arbeiten. Lassen Sie uns zunächst einige Variablen erstellen. Voller Controller für die Textbearbeitung. Der Name-Controller entspricht dem Textbearbeitungs-Controller. Und dann ist der gewählte Wert int gleich Null. Mal sehen, was wir tun werden. Wird das erforderlich sein oder nicht? Wir werden das später überprüfen. In den Kontexten , in denen dies nicht der Fall ist, erstellt die Rechnung zuerst den DB-Dienstanbieter, den Dienstanbieter-Kontext . Kontext. Und dann benötigen wir den DB-Service. Danach werden wir DV-Umfragen durchführen. Die ganze Abteilung. Wenn es leer ist, das nicht initialisiert wurde, dann rufen Sie die DV-Umfragen auf und holen Sie sich, dass alle Abteilungen nichts tun. Dieser Code bedeutet, dass Sie die Get All-Abteilung nur einmal anrufen. Dann werden wir dem Controller den Text nennen. Wenn es leer ist, verwenden Sie benannter Controller Der Textwert lautet dv service, user model, dot name. Und wenn das auch leer ist, mach es leer. Das ist eine leere Zeichenfolge. Das heißt, wenn diese Seite zum ersten Mal geladen wird, fügen Sie die fügen Sie Name-Controller-Texte in den Name-Controller ein, sodass sie dem Punktnamen des Benutzermodells entsprechen. Und nehmen wir an, der Benutzer hat seinen Namen nicht aktualisiert, dann verwende einfach die leere Zeichenfolge. So wie das hier. Wir verwenden diese Bedingungen unter Verwendung der folgenden Bedingungen. Weil der Gürtel mehrmals aufgerufen werden kann , wenn Notify Listeners verwendet werden. Das ist der einzige Grund. Lassen Sie uns jetzt am Körper arbeiten. Im Körper. Wir werden prüfen, ob das Dienstbenutzermodell gleich Null ist. Zeigen Sie dann eine Fortschrittsanzeige an. Denn wenn Sie ein Modell verwenden, ist es natürlich nicht da, wie wir die Daten zeigen können. Fangen Sie jetzt mit der Polsterung Rigid Const und beginnen Sie stattdessen mit unserem Duan De. Dann wird Child eine einzelne untergeordnete ScrollView-Spalte sein. Dann existiert das Hauptelement, das ist die Hauptausgangszelle in Mendota, Mitte. Querachsenausrichtung, Querachsenausrichtung. Das ist zentriert. Und dann haben wir diese Kinder 0, k. Also lass uns von hier aus weitermachen. Im nächsten Video. Im nächsten Video haben wir das TextField und eine Option zur Auswahl der Abteilung sowie eine Schaltfläche zum Aktualisieren der Benutzerdetails. Ich danke dir. 26. Dropdown-Menü zur Auswahl der Abteilung: Hallo, Lass uns in diesem Profilbildschirm weiterarbeiten. Also hier in dieser Kolumne haben wir diese Kinder. Und innerhalb dieser Kinder beginnen wir mit der Erstellung eines Containers. Container, gib ihm einen Spielraum von Const und Inserts zu Lee. Auf der Höhe hunderthundert. Dekoration, Kartondeklaration. Grenzradius, Grenzradius. Punkte sind cooler. 20 Farbfarben prägen den roten Akzent. So wie das. In diesem Kind. Schreiben Sie einfach Zuschüsse. Und drittes Kind, wir werden ihm eine Ikone geben. Also das, das ist nur für den Use a Look, den diese Person hinzugefügt hat. So sieht die Seite aus. Wenn Sie möchten, können Sie das Hochladen von Bildern implementieren und so weiter. Hier. Dies ist das Feld und darunter dieses Feld in der Containergröße, das Feld mit der Höhe 15. Dann entspricht die SMS-Mitarbeiter-ID , wir rufen den DB-Service an. Die Umfragen sind das UserModel, nicht die Employee ID. Wir zeigen ihm die Mitarbeiter-ID, die wir erstellt haben. Darunter befindet sich heute eine große Kiste mit KI. Und dann hab es TextField x will controller, name controller. Die Kollisionskonste, Eingabedeklaration, Bezeichnung, Text, vollständiger Name, vollständiger Name. Rahmen angeben, Eingaberahmen umreißen. Jetzt speichere alles. Mal sehen, wie es aussieht. Sehen Sie, wir haben die Mitarbeiter-ID. Es sieht nach Abstieg aus. Wir haben hier das TextField für den vollständigen Namen. Jetzt erstellen wir hier ein Drop-down-Menü, in dem der Mitarbeiter seine Abteilung auswählen kann. nun unter diesem Textfeld Geben Sie nun unter diesem Textfeld ein Größenfeld mit einer Höhe von 15 und schreiben Sie DV-Umfragen. Nicht alle Abteilungen sind leer. Dann schreibe const, lineare Fortschrittsanzeige oder auch Harris Size Box. Da ich weiß, dass es nicht leer sein wird, weil ich die Daten bereits in die Datenbank eingefügt habe. Deshalb werde ich einen linearen Fortschrittsindikator anzeigen. Jetzt in der Größenbox. Geben Sie ihm eine Höhe von Unendlichkeit mit Doppelpunkt, was eine ältere verfügbare Größe ist. Dann wird das Kind heruntergebracht. Formularfeld. Okay? Hier fügen wir als Erstes die Deklaration, Const, Eingabedeklaration, Rahmen und Gliederungseingabegrenze hinzu. Dann ist der Wert DV Servicemitarbeiter, Abteilung. Wenn es null ist, verwenden Sie den DB-Service. Departements. Erster Punkt-ID-Wert, das heißt, wenn der Benutzer Verkäufe auswählt, wie lautet dann die ID? Nehmen wir an, Null, das ist der Wert, den wir wollen, nicht die Texte, das ist eine Verkaufsoperation. Ich will den Text nicht, ich will die ID dieser Zeile. Dann müssen wir Artikel schreiben. Bei den Artikeln handelt es sich um DV-Umfragen, Punktkarte aller Abteilungen. Auf der Karte werden wir den Modellartikel der Abteilung haben. Innerhalb dieser Funktion wird nun Dropdown-Menüpunkt wie dieser zurückgegeben . K. Jetzt wird dieser Code, ich weiß, dass er sehr schwierig ist. Aber hier musst du es zur Liste schaffen , damit der Fehler verschwindet. Und innerhalb des Werts wird das Kind gelöscht, fertig. Der Artikel hat einen Wert. Es wird item.name, ID sein. Aber was sollten wir zeigen? Wir verwenden ein Textfeld, um Artikel, Punkt und Titel anzuzeigen. Und der Stil wird konstant sein. Textstil. Schriftgröße 20, 0, k. Hier ist es eine Return-Anweisung. Das letzte , was jetzt erforderlich ist, ist, dass wir das k in ihnen haben. Das Feld mit den Punktpunkten wird geändert. onchange gibt uns also den ausgewählten Wert. Hier. Wenn sie es verwenden, den Wert ändern, dann werden wir DV-Umfragen schreiben. Mitarbeiterabteilung, ändern Sie ihn auf den ausgewählten Wert. Das war's. Jetzt. Siehst du, wir haben Vertrieb, Marketing, alles. Wenn Sie möchten, können Sie etwas Polsterung hinzufügen und alles liegt bei Ihnen. Unterhalb dieses Größenfeldes. Schließlich haben wir noch einen gewissen Abstand zur Boxhöhe für D. Und dann holen wir uns noch einmal diese Größe der Box. Hier erstellen wir den Button. Die Größe funktioniert mit 250. Kind. Erhöhte Taste. Die Presse ist da. Und das Kind wird konstant sein. Als Nächstes. Update, Profilstil. Textil. Man sagt, wenn D N in der On-Premise ist, schreiben wir einfach dv Service Update Profile Contexts ist da. Und hier Controller Dot Text Trim genannt. Das war's. Jetzt ist also alles erledigt. Denken Sie daran, dass wir die Abteilungs-ID nicht senden , denn wenn der Benutzer sie ändert , wird hier automatisch die Mitarbeiterabteilung geändert. Außerdem benötigen wir diese ausgewählte Wertvariable nicht. Wenn ich jetzt zur Mitarbeitertabelle gehe, können wir sehen, dass die Abteilung und der Name leer sind. Lass uns nachschauen. Die Abteilung wird es leid tun, Name wird eine Weile dauern. Und Abteilung Lass es uns nehmen, ID, Update, Profil der Toten erfolgreich. Die C-Abteilung, um sie zu nennen, ist da. Und wenn ich zu den Anwesenheiten gehe, dann haben wir einen ganzen Agawam begrüßt. Früher war es die Mitarbeiter-ID, aber da wir die Notify-Listener verwenden , wird sie aktualisiert. Das bedeutet, dass unser Update- und Aktualisierungsprofil auch in allen Abschnitten einwandfrei funktioniert . Funktioniert jetzt. Im nächsten Video werden wir an der Funktion zum Abmelden eines Benutzers arbeiten. Danke. 27. Arbeit am Abmelden: Hallo, willkommen zurück. In diesem Video erstellen wir hier eine Abmelde-Schaltfläche , mit der sich der Mitarbeiter von dieser Anwendung abmelden kann. Es wird also sehr einfach und unkompliziert sein. Gehe zum Profilbildschirm. Dann hier in dieser Kolumne, lass uns sehen. Hier haben wir eine Kolumne. Wir haben Kinder, die sehr schnell tauchen. Das heißt, vor diesem Symbolbild. Erstellen Sie den Containerrand und geben Sie ihm eine Konstante. Kanteneinsätze, die erst stoppten, wenn D-Ausrichtung, Punktpunkt hell war. Dann wird das Kind als Nächstes Schaltflächensymbol angezeigt. Ich kann, ob es konstant ist, ich kann mich abmelden. Loggen Sie sich aus. Und das Label wird const, text sein. Abmelden. Hier. Lass uns das ändern. Top 200, 100, ich sage, wenn D, weil wir nicht so viel Spielraum brauchen. Jetzt speichern Sie es. Wenn ich dann nachsehe, haben wir hier diesen Abmelde-Button , der nett aussieht. Ich kann sehen. Nun einfach, wenn Sie zu Kunstumfragen gehen, wir haben hier bereits die Schaltfläche zum Abmelden. Gehen wir also zum Profilbildschirm hier vor Ort. Schreiben Sie hier einfach den Kontextanbieter. Und der Anbieter wird seltsam sein. Umfragen. Wir wollen nicht, dass es sich die Änderungen anhört. Wir wollten dieses Schild nur Wanchun nennen. Ok, speichere es. Okay, lassen Sie uns nun überprüfen ob wir ausgehen, wenn wir auf die Schaltfläche „Anmelden“ klicken oder nicht. Siehst du, sobald ich auf die Schaltfläche „Anmelden“ klicke, wird der Hörer benachrichtigt, hier den Splashscreen aufruft. Siehst du, dieser wurde neu aufgebaut und wir wurden von hier zum Anmeldebildschirm weitergeleitet. Deshalb müssen wir nicht nach dem Navigationscode navigieren, da dies hier automatisch erfolgt. Und im Moment habe ich das nicht, ich will diesen Code nicht hier haben . Wir melden uns direkt per E-Mail von der Anwendung ab. Wenn ich neu starte, wird dem Mitarbeiter auch die Anmeldeseite angezeigt. Das war's für dieses Video. Unsere App ist fertig, alle Funktionen funktionieren. Das einzige, was noch übrig ist, ist zu arbeiten. Wenn du an den Tisch gehst. Wir müssen an der Sicherheit auf Zeilenebene arbeiten. In den nächsten Videos werden wir also die Sicherheit auf Zeilenebene aktivieren und Richtlinien für die Tabelle schreiben. 28. Richtlinien für die Anwesenheitstabelle: Hallo, willkommen zurück. Das letzte, was jetzt noch übrig ist, ist die Aktivierung der Sicherheit auf Zeilenebene in unserer Datenbank. Sicherheit auf Zeilenebene ist also eine Sicherheitsfunktion, mit der wir den Zugriff auf Zeilen in einer Datenbanktabelle anhand der Identität oder Rolle eines Benutzers steuern den Zugriff auf Zeilen in können. In überwachter Umgebung können Sie RLS verwenden, um anhand vordefinierter Regeln einzuschränken, welche Datenzeilen ein Benutzer sehen oder ändern kann . Bisher hatte jeder mit dem öffentlichen API-Schlüssel Zugriff auf unsere Datenbank. Dieses Standardverhalten nach der Aktivierung von RLS für eine Tabelle besteht darin, dass jeder Zugriff verweigert wird, unabhängig davon, ob der Benutzer authentifiziert ist oder nicht, bis wir unsere Richtlinien erwähnt haben. Wenn Sie dorthin gehen, können Sie sehen, dass nach der Aktivierung der Sicherheit auf Zeilenebene alle Crud-Operationen verweigert werden. Dafür müssen wir also etwas schreiben, das als Richtlinien bekannt ist. Sie können sie sich so vorstellen als würden Sie jeder Abfrage eine Where-Klausel hinzufügen. Verschiedene Tabellen können unterschiedliche RLS-Richtlinien haben. Vielleicht möchtest du, dass irgendein Tisch produziert wird, bist es vielleicht nicht. Also lasst uns anfangen. Aktivieren Sie RLS, gehen Sie zur Authentifizierung und dann zu Richtlinien. Wie Sie sehen können, ist RLS hier in allen Tabellen deaktiviert. Wir beginnen mit der Aktivierung von RLS in der Anwesenheitstabelle. Und da ich die Anwendung nicht zum Ausführen benötige, werde ich sie einfach beenden. Und konzentrieren wir uns auf Lee unter RLS. Sie also hier klicken, wird ein kleinerer Wert hinzugefügt als, sind Sie sicher, dass Sie unsere Sicherheit auf Zeilenebene für diese Tabelle aktivieren möchten ? Anwesenheitsquote, bestätige. Wie Sie sehen können, ist RLS aktiviert, aber es wurden noch keine Richtlinien erstellt. Lassen Sie uns also eine neue Richtlinie erstellen. Und hier haben Sie zwei Möglichkeiten. Legen Sie schnell los und erstellen Sie eine Richtlinie von Grund auf. Der Einfachheit halber sollten Sie den Schnellstart verwenden und nachdem Sie später einige Abfragen erstellt haben , können Sie, wenn Sie möchten , weitere Anpassungen vornehmen. Klicken Sie jetzt auf Schnell loslegen. Hier sehen Sie also, dass es vordefinierte Vorlagen gibt dass es vordefinierte Vorlagen die nicht für alle lesbar sind. Aktivieren Sie dann den Insert-Zugriff nur für authentifizierte Benutzer. Anschließend aktualisieren sie den Zugriff für Benutzer anhand ihrer ID. Wie Sie sehen können, dient diese Vorlage dazu, eine Bitachse zu aktivieren. Wenn Sie diese Vorlage verwenden, können Sie jedoch sogar ändern, welcher Zugriff erforderlich ist. Das heißt, wir werden, wir können diese Vorlage verwenden, aber stattdessen dieses Update können wir schreiben. Angenommen, auswählen und dann aktiviert auswählen und Zugriff für Benutzer anhand ihrer E-Mail auswählen. Es ist also nicht unbedingt so, wenn eine nur anhand ihrer E-Mail erledigt werden kann. Und schließlich wird Benutzern anhand ihrer ID kein Löschzugriff gewährt . Also liest du einfach. Ermöglichen Sie Benutzern den Zugriff anhand ihrer ID Ob verzögert, gelesen, aktualisiert, das liegt an uns. Also lasst uns anfangen. Wir verwenden den Zugriff „ Unable Insert nur für authentifizierte Benutzer. In dieser Tabelle ist das eine Anwesenheit. Wir erlauben es, jeden einzufügen , der ein Konto erstellt hat. Verwenden Sie also diese Vorlage. Dann hier. Wie Sie sehen können, lautet der Richtlinienname und wird für die Authentifizierung von Benutzern eingefügt zulässige Vorgang ist einfügen. Die Zielrollen wurden nur authentifiziert, was wahr sein sollte. Wir werden also keine Änderungen vornehmen. Klicken Sie einfach auf Bewertung. Sie können die Anfrage hier sehen. Und denken Sie daran, diese Abfrage können wir in unserem eigenen inneren Anpassungsbereich tun. Wenn Sie wissen, wie man sie schreibt, Postgres-Sequel-Abfrage unbekannt, also ist sie gut. Klicken Sie nun auf Richtlinie speichern. Wie Sie sehen, haben wir unsere erste Richtlinie, die darin besteht, Daten in die Anwesenheitstabelle einzufügen, erfolgreich umgesetzt die darin besteht, Daten in die . Nun wieder, zum zweiten Polyzyklikum, wieder zu einer neuen Politik. Dann legen Sie schnell los. Wählen Sie nun die Vorlage aus. Löscht den Zugriff für Benutzer anhand ihrer Benutzer-ID. Zunächst verwenden Glyphicons diese Vorlage, aber wir werden die Vorlage Löschen verwenden , um zu viele Aktualisierungen zuzulassen. Das heißt, Mitarbeiter können ihre eigenen Daten auf Lee aktualisieren. Ändern Sie sie einfach zuerst. Ein Richtlinienname, um Updates für Benutzer auf der Grundlage der Benutzer-ID zu aktivieren . Dann klicken Sie statt Löschen auf Aktualisieren, dann haben Sie dieses zusätzliche Feld. Welcher Ausdruck wird dann benötigt? Die Bedingung ist, dass eine Punkt-ID dieser Mitarbeiter-ID entspricht, die dem Spaltennamen entspricht. Hier. Benutzer, der die Unterstrich-ID verwendet. In unserer Tabelle gibt es keine solche Spalte. Das ist, glaube ich, ja. Tabelle „Mitarbeiter“. Ja. Es waren Angestellte. Ich habe es selbst vergessen. Es war hier die Anwesenheitstabelle. Stimmt. Mitarbeiter-ID. Das ist seltsam. Wer auch immer diesen Überschuss , also seine ID, beantragt , sollte dem Feld Mitarbeiter-ID entsprechen. Kopieren Sie jetzt einfach dasselbe und fügen Sie es in diesen Recheck-Ausdruck ein. Diese beiden werden gerettet. Danach klicken Sie auf Überprüfen und dann auf Richtlinie speichern. diesem Fall haben wir auch erfolgreich die Richtlinie für den Zugriff auf Updates für die Anwesenheitstabelle zurückgegeben . Dann wieder eine weitere Richtlinie für die Teilnahme. Klicken Sie auf „Abrufen“. Wählen Sie nun erneut den Löschzugriff für Benutzer anhand ihrer ID-Vorlage aus. Klicken Sie auf Diese Vorlage verwenden. Dann werden wir hier eine Nibble-Auswahl zulassen, die das Lesen, das Lesen dieser Daten ermöglicht. Das liegt daran, dass wir bereits wissen, dass wir eine Seite haben auf der die Leute übersteigen, sodass die Leute ihre eigene Anwesenheitshistorie sehen. Daher erlauben wir Benutzern nur den Zugriff auf ihre eigenen Verlaufsdaten. Klicken Sie also auf Auswählen. Dann. Hier wird es die Mitarbeiter-ID sein. Das war's. Wir haben also eine umgekehrte Auswahl für Benutzer basierend auf der Benutzer-ID. Wählen Sie dann auch hier die Mitarbeiter-ID aus, wenn Sie möchten, können Sie die Mitarbeiter-ID hinzufügen. Der Name liegt bei dir. Dies ist nur ein Richtlinienname. Dieser ist der wichtigste, das ist ein Spaltenname. Klicken Sie auf Überprüfen und dann auf Speichern. Wie Sie sehen können, haben wir erfolgreich Richtlinien für die Anwesenheitsliste verfasst . Da dem Mitarbeiter in der App kein Löschzugriff gewährt wird , werden wir die Richtlinie dafür nicht schreiben, aber ich hoffe, Sie haben das verstanden. Angenommen, Sie haben diese Löschfunktion. In ähnlicher Weise können Sie auch die Richtlinie zum Löschen schreiben. Es ist nichts anderes als all diese Richtlinien. Das war's für die Anwesenheitstabelle. Im nächsten Video werden wir Richtlinien für die Abteilungen schreiben. Danke. 29. Tabelle der Richtlinien für die Abteilungen: Hallo, lasst uns weiter an unseren Richtlinien arbeiten. In diesem Video werden wir hier am Tisch der Abteilung arbeiten . Aktivieren Sie zunächst das RLS. Dann ja, wir sind bestätigt. Dann klicke darauf, bestätige. Dies ist eine religiöse Fähigkeit. Dann klicken Sie auf Neue Richtlinie und legen Sie schnell los. Jetzt wissen wir, dass die Abteilungstabelle keine sensiblen Daten enthält. Wir werden also diese Vorlage verwenden, die für alle hier einen ungültigen Lesezugriff darstellt. Es liegt an dir. Wenn Sie möchten, können Sie diesen Lesezugriff nur für authentifizierte Benutzer verwenden , aber ich werde diese Vorlage verwenden. Klicken Sie auf, verwenden Sie diese Vorlage. Hier. Wir werden keine Änderungen vornehmen. Klicken Sie auf die Ansicht und dann auf Richtlinie speichern. Wir haben also die Tabelle mit den ausgewählten Richtlinien für Abteilungen. Außerdem benötigen wir nur den Lesezugriff für diese Tabelle da wir Abteilungsdaten direkt aus dem Supervisor-Dashboard in diese Anwendung einfügen Abteilungsdaten direkt aus . Wenn Sie also zum Tabelleneditor gehen, wenn Sie zu den Abteilungen gehen, haben wir diese Daten direkt aus dieser Datei eingefügt , also Zeile einfügen, und deshalb brauchen wir keine Richtlinien. Aber nehmen wir an, Sie haben eine andere App oder Sie erlauben dem Firmeninhaber , die Abteilungen einzufügen, dann müssen Sie die neue Richtlinie schreiben. Dann fügen Sie für die Benutzerauthentifizierung ausschließlich Leseabteilungen für Unleash ein. Admin sind der Eigentümer des Unternehmens. Wie bei all diesen Dingen, die du tun kannst, liegt es an dir. Da wir jedoch diese einfache Anwendung haben, benötigen wir keine weiteren Richtlinien. Das war's für den Abteilungstisch. Im nächsten Video werden wir endlich am Mitarbeitertisch, der Enqueue, arbeiten. 30. Richtlinien für die Tabelle der Mitarbeiter: Hallo, willkommen zurück. In diesem Video werden wir an den Richtlinien für die Mitarbeitertabelle arbeiten. Also einfach zuerst RLS aktivieren. Dann bestätige. Klicken Sie dann auf Neue Richtlinie. Klicken Sie auf Get Started. Wir werden diese Vorlage verwenden. Sie fügen den Zugriff nur für authentifizierte Benutzer ein. Denn nachdem wir ein Konto erstellt haben, das sich registriert, fügen wir neue Benutzerdaten in diese Tabelle ein. Wir wollen diese Einfügung also nur für authentifizierte Benutzer. Klicke auf, benutze sie. Wir werden hier keine Änderungen vornehmen. Klicke auf Review, dann ist alles in Ordnung. Klicken Sie auf Richtlinie speichern. Das Einfügen ist also fertig. Klicken Sie dann erneut auf Neue Richtlinie. Fangen Sie schnell an. Jetzt müssen wir eine Richtlinie für den Aktualisierungsüberschuss erstellen. Wählen Sie die dritte Vorlage, um die es sich handelt den Update-Zugriff für Benutzer auf der Grundlage ihrer E-Mail-Vorlage zu aktivieren . Also ich hoffe du hast es hier absolut verstanden. Dies wird überprüft, vorausgesetzt , ein Benutzer sendet diese Anfrage. Anstatt die Benutzer-ID zu überprüfen, überprüfen wir nicht die Art Dot-E-Mail, die Sie sagen können. Dann klicken Sie auf Vorlage verwenden. Und wenn Sie sich jetzt erinnern, haben wir in unserer Tabelle bereits eine Spalte mit dem Namen E-Mail , wie diese Mitarbeitertabelle. Wir müssen hier also keine Änderungen vornehmen. Aber wenn du so etwas wie Wucherbackenzahn Mitarbeitermoral hast , dann musst du hier den Spaltennamen schreiben. Es ist, ein Schrägstrich eines Mitarbeiters, der die E-Mail oder einen beliebigen Namen der Spalte unterstreicht. Klicken Sie auf Überprüfen und dann auf Richtlinie speichern. Und schließlich wird sich diese dritte Maßnahme auf diesen übermäßigen Zyklus beziehen. Und wir werden auch dieselbe Vorlage verwenden, nämlich Zugriff für Benutzer anhand ihrer E-Mail-Adresse zu ermöglichen. Und wenn Sie möchten, können Sie es auch nach ihrem Ideal verwenden. Also werde ich einfach anhand ihrer E-Mail vorgehen. Und klicken Sie auf Verwenden ist der Richtlinienname für einen ungültigen Lesevorgang. Für Benutzer, die auf E-Mail basieren, würden zulässige Operationen ausgewählt. Dieser ist okay, das ist Emilys E-Mail-Bewertung. Und dann klicken Sie auf Richtlinie speichern. RLS ist also in allen Tabellen erfolgreich aktiviert. Und das haben wir auch geschrieben. Diese Richtlinien. Das heißt, ob beim Löschen die Option Einfügen übernommen wird, ist erforderlich. Das hängt von App zu App ab. Der Benutzer kann also offensichtlich nichts löschen, da die Late-Policy nicht seine einzige ist . Supervoreingenommene Admins können direkt durch eine Tabelle gehen und das Zeug löschen. Das ist auch gut so, denn jede Löschanfrage wird storniert. Das war's also für den Sicherheitsteil auf Zeilenebene. Ich hoffe du hast das verstanden. Möglicherweise finden Sie es sehr schwierig, da dieses Konzept in anderen Cloud-Diensten nicht verfügbar ist. Jeder hat sein eigenes Ding, manche, einige Sicherheitsregeln, manche haben unterschiedliche Dinge. Es hängt also vom Cloud-Dienstanbieter ab. Aber soweit es sehr einfach ist. Im nächsten Video werden wir endlich testen , ob unsere Anwendung vollständig funktioniert, wenn die Sicherheit auf Zeilenebene aktiviert ist. Danke. 31. Die vollständige Anwendung testen: Hallo, willkommen zum letzten Video unseres Kurses. In diesem Video werden wir die vollständige Anwendung testen. Und diesmal benutze ich hier mein physisches Gerät. Außerdem haben wir letzten Videos die Sicherheit auf Zeilenebene aktiviert. Also schauen wir mal, ob alles perfekt funktioniert oder nicht. Also lass uns gehen und uns mit unseren Anmeldeinformationen anmelden. 345. Klicken Sie auf Anmelden. Okay. Bis hier ist alles in Ordnung. Sehen Sie, ich habe mich in mein Konto eingeloggt. Wenn ich gehe, habe ich diesen, dann sage direkt, dass das so ist. Das bedeutet also, dass der Lesezugriff hier einwandfrei funktioniert. Lesen Sie dort auch Exzesse. Das heißt, der Mitarbeitertisch. Der Name des Mitarbeiters ist hier. Wenn ich nun versuche, mit Slate einzuchecken, okay, wenn sie eine physische Taste verwenden, fragt sie nach dem Standort, während sie die App verwenden. Und sieh, das heißt, es funktioniert. Wir können die Daten einfügen. Rls funktioniert auch einwandfrei. Okay? Das Profil ist also da. Wir haben den vollständigen Namen, wir haben die ID. Und wenn ich wieder auschecke, sollte dieser Checkout auch funktionieren. Jep. Es hat auch funktioniert. Die Kasse ist also auch da. Wenn ich auf die Anwesenheitshistorie klicke, habe ich die heutige Anwesenheitsliste. Und wenn ich den Namen in nur Raul ändere und ihn auf Marketing aktualisiere und auf Update klicke. Ja, Update, erfolgreich aktualisiert. Es hat einige Zeit gedauert, aber ich glaube nicht. Es wird immer wieder passieren. Wenn ich einfach auf Neustart klicke, dann sehe ich, wir haben jetzt ein ganzes Marketing. Wir haben die Marketingabteilung. Unsere App funktioniert also perfekt. Alle Funktionen funktionieren. Ich klicke einfach auf Abmelden. Jep. Das glaube ich nicht. Diese kleine Verzögerung tritt in Ihrer Anwendung auf, weil ich diese Anwendung auf meinen Geräten erneut, wieder richtig getestet habe. Diese Sache passiert gerade hier, aber es ist kein Problem. Das war's für diesen Kurs. Ich hoffe, Sie haben viel Spaß gehabt und viel gelernt. Schau dir auch meine anderen Kurse an. Das war's. Ich hoffe, wir sehen uns in meinen anderen Kursen. Übe weiter.