Transkripte
1. EINFÜHRUNG: Wenn Sie wissen, Alda Grundlagen von Flutter und Firebase, ob Sie Mittagessen auf eigene Faust. Danach wird sich der nächste Schritt für Ihr erstes Vorstellungsgespräch bewerben. Und Sie haben Ihren Lebenslauf dort bereit, dass ein Personalvermittler Sie bitten wird, ihnen einige praktische Projekte als rot zu zeigen, weil auf Schuldenbasis nur sie Ihre Fähigkeiten beurteilen. In diesem Kurs lernen
Sie also, eine grundlegende Chat-Anwendung mit Flutter und Firebase als Back-End zu erstellen . Dieser Kurs richtet sich an Anfänger, die neu in realen Anwendungsprojekten sind. Menschen, die wissen, dass Grundlagen ein Flattern, aber etwas von Grund auf bauen wollen, um zu üben, was sie bisher gelernt haben. Ich hoffe, Sie werden diesen Kurs genießen und Ihren Traumjob in Ihrer Traumgesellschaft bekommen.
2. Gestalte ein neues Projekt: Hallo, willkommen zu diesem Kurs, wo wir eine grundlegende Chat-Anwendung mit Flutter und Firebase
erstellen werden. Einige, bevor ich vorwärts gehe, gehe
ich davon aus, dass Sie frühere grundlegende Konzepte gelöscht haben, wie dunkel, flacher und wie man Firebase-Authentifizierung
implementiert und Firestore-Datenbank verwendet. Denn in diesem Modul werden
wir nur über
diese Zwischenkonzepte sprechen , weil wir eine komplette Chat-Anwendung erstellen. Und dafür müssen Sie Ihre Grundlagen lesen. Manche, ohne mehr Zeit zu verschwenden. Ich möchte damit beginnen, ein neues Projekt zu erstellen. Also lasst uns zum Ordner gehen. Und hier würde ich die Kommandozeile benutzen und gerade Flutter gestorben. Erstellen Sie Chat-Anwendung wie folgt. Das wird also unser neues flacheres Projekt schaffen. Also ja, das ist unsere Chat-Anwendung. Jetzt rufen Sie einfach Ihren VS-Code auf und fügen Sie Ihr Projekt hier an. Ok, es ist erledigt. Entfernen Sie einfach diese Testdatei. Jetzt werde ich nicht nur in meinem Emulator gelernt haben, ich werde zuerst mein Firebase-Projekt erstellen. Gehen Sie also zu firebase dot google.com und klicken Sie auf Gehe zur Konsole. Dann klicken Sie hier einfach auf Projekt hinzufügen und gab ihm einen Namen. Ich werde es überschwemmte Chat-App nennen. Ok. Und dann weiter. Ich werde Google Analytics vorerst nicht aktivieren. Und dann klicken Sie auf Neues Projekt erstellen Schaltfläche. Und dann dauert es nur ein paar Sekunden. Sehen Sie, dass mein neues Projekt fertig ist. Klicken Sie dann auf Weiter. Dann. Hier werden wir zu diesem Firebase-Dashboard navigiert. Hier können Sie die anderen Optionen wie welche Indikation Datenbank-Speicher Hosting eine Eule sehen. Und ganz in der Mitte können Sie den Einstieg sehen, indem Sie Firebase zu Ihrer Anwendung hinzufügen. Also müssen wir Firebase mit unserer Flatter-Anwendung konfigurieren. Und ich werde eine Android-Version konfigurieren. Klicken Sie also einfach auf das Android. Hier. Sie werden die anderen Optionen sehen, die technische Fähigkeiten sind. Zuerst ist der Android-Paketname, den Sie finden können. Indem Sie in den Android-Ordner gehen, dann App und dann Quelle. Oder Sie können auch innerhalb der Android-ID gehen, ist dieses Gebäude. Und hier können Sie gehen und sehen Sie diese Standardkonfiguration und Ihre Anwendungs-ID. Diese Folie, das hier. Du kannst es alles benennen. Ich würde es chat-App nennen. Dann, da wir Google Anmelde-Authentifizierung verwenden werden. Also müssen wir unser Debug-Signaturzertifikat dafür verwenden. Um Ihr Debug-Signaturzertifikat zu erhalten, müssen
Sie den SHA-1-Schlüssel von Ihrem Gerät abrufen. Dazu fügen Sie einfach ein neues Verzeichnis an, das ist Systemverzeichnis. Wechseln Sie zum Ordner C. Sehr seltsam. Und schreiben Sie Dateien Identitäten, die wir in Programmdateien gemacht haben, müssen
Sie auf Android gehen, dann Android Studio und JRE, Dann bin. Und hier. Sie müssen ihre Kommandozeile herausbringen. Jetzt. Sie müssen nur diese Codezeile hier einfügen. Wenn Sie möchten, können Sie das Video einfach pausieren und die SHA-1-Taste erhalten. Nachdem Sie es eingegeben haben und drücken Sie die Eingabetaste. Sie erhalten Ihren SHA-1-Schlüssel von hier. Kopieren Sie es einfach. Und dann, und fügen Sie es dann in diesem Debug-Signaturzertifikatabschnitt. Und dann klicken Sie auf Registrieren. Wieder. Dieser Schlüssel wird für gut gehen verwendet, Sign-in Phonons Anzeige für diese Art von Zwecken. Jetzt müssen Sie diese Konfigurationsdatei herunterladen. Dies ist wichtig, da es
die APA-Schlüssel und die kritischen Informationen enthält , die Firebase verwenden kann. Laden Sie es einfach herunter und gehen Sie dann zu den Ordnergewichten, die heruntergeladen werden. Schneiden Sie es von dort ab. Jetzt in Ihrem Flatter-Projekt CO2-Android-Ordner, dann innerhalb des App-Ordners, und hier fügen Sie Ihre Cuckold services.js und Einreichung. Klicken Sie dann einfach auf Weiter. Jetzt müssen wir einige Firebase-Konfigurationen in unserem Florida-Projekt durchführen. Kopieren Sie diese Klassenteilzeile des Codes. Und in Ihrem Android-Ordner haben
wir eine Build-up-Gradle-Datei darin, die genau das hier ist. Dann innerhalb des Android-Ordners und dann innerhalb des App-Ordners haben wir eine andere Datei, in der wir diese Codezeile bezahlen müssen. Gehen wir hierher. Sie können hier sehen, fügen Sie es hier, und dann kopieren Sie dies, anwenden Plugin und fügen Sie es am Ende. Eine Sache, die Sie tun müssen, ist genau hier, multi ydx dy, dx aktiviert für diesen Code ist erforderlich, wenn wir es mit Firebase zu tun haben. Also müssen Sie sich immer daran erinnern. Dann klicken Sie einfach auf Weiter, und dann klicken wir auf Weiter zur Konsole. Wir werden zur Firebase-Konsole navigiert. Und hier ist unsere Android-App bereit zu arbeiten. Nun, bevor wir unsere Anwendung im Emulator ausführen, müssen
wir hier einige Konfigurationen durchführen. Also setzen Sie einfach zwei Hauptpunkt, Punktdatei und hier machen Sie die Hauptfunktion als Waschbecken. Und dann richtig, dendrite diese Codezeile. Erstens, starre Datenbindung und kurz initialisiert. Also müssen Sie diese Codezeile schreiben. Es dauert einige Zeit für ihre Bindung, die sicherstellen, dass dies
initialisiert und dann einfach den Firebase-Punkt iteriert. Wir müssen zuerst auch Firebase importieren. Aber wie Sie sehen können, bevor Sie Firebase importieren, müssen
wir diese Abhängigkeiten Spezifikation Punkt YAML-Datei schreiben. Also für das, die Kosten Zugriff auf jedes externe Paket, unsere Funktion, müssen wir Abhängigkeiten verwenden. Also zuerst hieß es, zweitens war Firebase. Und da wir dann wirklich Google Log-in über verwenden, werden
wir dieses Bein in Israel verwenden. Und die letzte Sache ist Wolke Firestore. Dies sind also die erforderlichen Pakete. Kopieren Sie einfach dieses Paket, gehen Sie zur Datei und fügen Sie es hier ein. Sie dann ähnlich KopierenSie dann ähnlich, fügen Sie es ein, dann melden Sie sich Google an, kopieren Sie und fügen Sie es ein. Und dann endlich unsere Cloud Firestore. Diese Abhängigkeiten sind erforderlich. Und all diese Faser-Plugins werden kollektiv Flutter Fire genannt. Sie können einfach diesen Begriff durchsuchen und Sie werden all diese Abhängigkeiten finden. Gehen Sie nun zur Hauptpunktdatei. Und lasst uns schreiben, lasst uns unsere Firebase initialisieren. Und hier haben wir Handel warten. Firebase-Punkt initialisiert, dass es auf diesen Konfigurationen ordnungsgemäß durchgeführt werden. Nun, wenn Sie möchten, können wir einfach, wir können einfach die Anwendung im Emulator ausführen und auch sicherstellen, dass Sie Google-Anmeldung aktivieren. Richten Sie also die Google-Anmeldung ein. Und hier in diesem dritten, haben
Sie das deaktiviert, aktivieren Sie es einfach. Und ich würde retten. Jetzt
wird die Google-Anmeldung aktiviert. In ähnlicher Weise müssen Sie es über Google, Firestore als auch aktivieren. Also hier, klicken Sie einfach auf Datenbank erstellen und wählen Sie dann, wählen Sie einen Ort und Sie tun es in diesem Zeugnis und Alphabet, Sie werden zu dieser Wolke Firestore Konsole Israel geschickt werden. Das war's also für dieses Video. Stellen Sie sicher, dass Sie mit dem Debuggen beginnen, denn da es einige Zeit dauern wird möchte
ich das Video hier stoppen, damit es nicht unsere Zeit verschwendet und wir können mit dem nächsten Video fortfahren. Danke.
3. Den the erstellen: Hallo. In dieser Sitzung werden wir den Authentifizierungsbildschirm aufbauen. Denn bevor man in die Häuser sauber ist der Chat-Bildschirm auf jeden Fall muss der Benutzer ein Konto erstellen. So weit, dass Lassen Sie uns einen Ordner in unserer Feder erstellen und nennen Sie es Bildschirme. Und in diesem, erstellen Sie die Datei namens ARP, Milz dot-dot, wie folgt. So wie in der Regel Brett Material. Und dann lassen Sie uns einen Status für
Login und
Benennungsgerüst erstellen Login und . Seitdem hätte
ich Vardy geplündert. Und dann in diesem Kind, lasst uns eine Spalte haben. Was ich also einfach vorhaben, ist zu schaffen, dass dieser erste Finger ein Logo sein wird. Das dann, nachdem es den App-Namen und dann eine Schaltfläche namens Signieren mit Google. Das heißt, deshalb benutze ich sie. Mit dieser Säule innerhalb des Koeloms. Nehmen wir einen Behälter. Behälternetze haben eine Deko-Box Dekoration. In ihm drin. Ich möchte das Bild der Kollision sehen. Und jetzt in diesem, die Kollisionsbild, wenn Netzwerk-Bild-Widget gegeben. So können Sie einfach Ihren Browser öffnen. Sie können chatten, chatten logo, nehmen chat-symbol, wie folgt. Sie können einfach, und dann wird es viele Optionen geben. Sie können wählen, was auch immer Sie möchten. Was ich tun werde, ist nur warten, lassen Sie mich überprüfen, ob ich bekomme, was ich will. Also werde ich nur meine eigenen verwenden, die ich bereits früher benutzt habe. Sie können einfach mit der rechten Maustaste klicken und auf das Sofort-Kleid kopieren klicken, und dann fügen Sie es hier ein. Machen Sie das so einfach. So ist es der Kunstbildschirm. Gehen wir zum Hauptplatz. Jack. Wir bewegen uns auf diesen vorherigen Code. Im Haus. Machen Sie den ungeraden Bildschirm ist der Einstiegsbildschirm wie folgt. Und dann schauen wir mal. Zeigt es Bilder an oder ein Fehler? Gibt es da? Sieh es dir an. Ich schätze. Was ich tun kann, ist anzunehmen, wenn ich erweitert gebe, dann lass uns sehen, was passiert. Sehen Sie, denn offensichtlich sollten Sie diesem Behälter etwas Höhe geben. Also habe ich erweiterte Mittel gegeben, nehmen Sie den gesamten verfügbaren Platz in dieser Spalte. Das ist also die Bedeutung Lambda. Nach diesem erweiterten Widget. Und wir werden einen Text haben und den Schuppen überfluten. Und lasst uns etwas Styling geben. Fremdgröße, 36, Schriftgewicht, Schriftgewicht, fett. Lass es uns speichern und sehen. Da habe ich erweitert verwendet, so hat es gerade nach unten geschoben und auf dem Raum hier zu untersuchen. Danach müssen wir eine Signatur mit Google-Schaltfläche erstellen. Lass es uns tun. Lasst uns nicht gelindert haben. Aber dann auf viszeral Standard jetzt nur für die Benutzeroberfläche. Und in diesem Kind, lassen Sie uns eine Rolle erstellen, so dass sie sowohl als auch Text abgebildet werden können. Lassen Sie uns das Haupt existieren. Ich meine das Zentrum und die Kinder. Das erste, was ich brauche, ist abgebildet nicht Netzwerk, und dann erhalten Sie ein Google-Logo. Ich würde nur mein eigenes dieses Bild kopieren, aber Sie können einfach zu Chrome gehen, wie normalerweise nach
Bild suchen und seine Adresse kopieren und es hier so einfügen. Und zu diesem Bild, Lassen Sie uns eine Höhe geben. Höhe von 36. Drittens, dieses Bild in dieser Zeile, werden
wir eine Größe von 10 haben, so dass es einige Abstände zwischen ihrem Logo. Das ist das Bild und Text ist der Text. Und x wird mit Glukose unterschreiben. Lassen Sie uns etwas Styling geben, grundlegendes Styling wie immer. Dann. Wir werden eine Schriftgröße haben D. Und das heißt, lassen Sie uns speichern und überprüfen. Was ist die Ausgabe? Sehen Sie, wir haben dieses Logo und wir haben diesen Knopf. Als erstes würde ich uns etwas Polsterung auf diesen Knopf geben. Lassen Sie uns gehen und dann wickeln Sie es mit Berlin und geben Hinzufügen nicht symmetrisch. Und dann horizontal. Dann, was Aufkleber, lebendige zwei in d. Mal sehen. Schön aussehend, zumindest anständig. Dann, was ich tun werde, ist auf diesen Knopf. Hier werde ich diesem Knopf etwas Styling geben. Stil. Aber dann Stil. Tut mir leid, es sollte nur Merton so abgestanden sein. Und dann in ihm jemals gegeben Hintergrundfarbe, mein Zustand legte den Punkt, dann desto weniger schwarz und dann etwas Polsterung. So kann mehr Bettwäsche sagen. Lassen Sie uns überprüfen, weil Polsterung erforderlich ist, um sicherzustellen, dass die Schaltfläche nicht ist. Aber lasst uns nicht so eng, also lasst uns auch etwas Polsterung geben. ADA-Statuseigenschaft auf
Kanteneinsätzen erfüllt , nicht symmetrisch. Und dann nur die Vertikale. Geben wir zwölf. Lassen Sie uns C. Nun, dieser Home-Bildschirm, tut mir leid, der ungerade Bildschirm sieht perfekt aus. Und gerade wieder erweitert werden, weil dieser erweitert hat, sind weniger Platz bis hier. Und dann die anderen Widgets, das bedeutet, dass Text und Button nach unten gedrückt werden. Also ja, das ist es für diesen Authentifizierungsbildschirm. Im nächsten Video werden
wir Google-Anmeldefunktionen implementieren.
4. Google Login implementieren: Jetzt ist der UI-Teil abgeschlossen. Es ist Zeit, dass wir an der Taco Bell Signierfunktion arbeiten. So weit, dass in der Arts Greens Datei, werde
ich einfach an der Spitze gehen. Und zuerst würde ich eine Google-Signaturinstanz erstellen. So wird es Cuckold Signieren gleich wie folgt einloggen. Und dann würde ich
eine Instanz-Affäre Firebase von einem Speicher erstellen , der zuerst auch in der Datenbank ist. Weil ich die Daten des Benutzers auch in Firestore speichern würde. Es sind alle Authentifizierungsdaten. Also nach diesem, lassen Sie uns unseren zukünftigen Funktionsnamen erstellen ist Signaturfunktion. Es wird ein Sinken sein. Und das ist das Verfahren, das heißt, dieser Code ist für die Kalzinierung festgelegt. Warte. Gehen Sie calcinieren Punkt melden Sie sich an. So wird das Menü auftauchen. Sie können Ihr Konto auswählen. Sie können auf die Schaltfläche Zurück klicken, und die aktuelle ist null. In diesem Fall habe ich diese Überprüfung durchgeführt, damit
der folgende Code nicht ausgeführt wird, wenn der Benutzer auf die Anmeldung mit
Google klickt ,
aber kein Konto auswählt und direkt zurückgeht . Nach dem hier. Lasst uns 10 verfallen. Google ist gleich warten, wird dot-dot-dot wie folgt verfallen verwenden. Lassen Sie mich also das Zugriffstoken erhalten, das ich brauche, um es zu kontrollieren. Und dann ist das, wie unsere Berechtigung. Und ich gehe Anbieter. Anmeldedaten. Hier. Es akzeptiert Zugriffstoken und es wird Google Art verknüpfen. Lass dich einfach lächeln. Geht Zugriffstoken und dann das ID-Token im Cookie-ID-Token. Dann, was wir tun müssen. Jetzt müssen wir auch die Firebase-Kunstinstanz verwenden. Also werde ich einfach Benutzeranmeldeinformationen schreiben. Benutzer können dann teilen ist gleich warten. Firebase-Punkt-Instanz. Ich habe die Instanz nur hier erstellt, aber mit Anmeldeinformationen signiert. Und Sie müssen die Anmeldeinformationen übergeben. So einfache Wörter, dieser Code wurde benötigt, um Authentifizierung oder die Anmeldeinformationen von Google zu erhalten. Und danach werden wir diese Codezeile verwenden, damit unsere eigene Firebase-Authentifizierung auf dieses Konto zugreifen und die Informationen speichern kann. Jetzt haben wir uns erfolgreich angemeldet. Aber was ich tun möchte, ist, dass ich diese Daten erstellen oder speichern möchte, auch
die Firestore-Datenbank. So können Sie einfach eine
Gewichtsfeuerladesammlung
schreiben . Ich würde eine Sammlung namens Users dot DOCX erstellen. Dokument-ID kann Benutzeranmeldeinformationen Punkt Punkt UID sein. Und es zeigt dies, weil Nelson nicht mit
diesem Ausruf gelassen werden kann und versichert, dass es nicht null sein wird. Und dann diese Set-Methode. Lass es uns tun. Das erste, was ich speichern würde, ist diese E-Mail, einfach späte Benutzeranmeldeinformationen, Benutzer-E-Mail. Und wie immer musst du das benutzen. Dann würde ich Name,
Benutzeranmeldeinformationen schreiben . Der Benutzer. Anzeigename des Punkts. Dann würde ich das Bild speichern. Und sofortige Kanadier Benutzer Anmeldeinformationen Punkt Benutzer. Für eine URL. Dann wird es UID sein. UID wird Benutzeranmeldeinformationen UID sein. Und das letzte Datum, an dem dieser Account erstellt wurde? Das Datum, die Uhrzeit. Aber jetzt haben wir unsere Funktion bereit. Probieren wir es aus. Aber zuerst stellen Sie sicher, dass wir diese Funktion in unserer Drucktaste aufrufen. Schreiben Sie einfach auf diese Senke und warten Sie Signaturfunktion wie folgt. Diese Funktion wurde also aufgerufen. Lassen Sie uns nun überprüfen, ob es funktioniert oder nicht. Wir haben unsere Firebase bereit. Nun, wenn ich darauf klicke, es könnte mich fragen, ob es kann direkt ja, Es hat mich gefragt. Also klicke ich auf Mein Konto. Und offensichtlich werden
wir im Moment nirgendwo navigiert. Aber lassen Sie uns überprüfen, ob es gespeichert wurde oder nicht. Siehst du, das wurde gespeichert. Und in meiner Firestore Datenbank. Auch hier wurden die Daten korrekt gespeichert. Der E-Mail-Image-Name UID, und jetzt funktioniert alles gut. Nur eine Sache, eine Sache, die ich sicherstellen muss, dass der Benutzer sich abmeldet und dann er, wenn er wieder auf die Signierung mit Google klickt, dann werden diese Daten in Richtung aktualisiert werden, dass Feuer in die Datenbank, was einfach bedeutet, angenommen während Sie die Chat-Anwendung verwenden, ändert
der Benutzer das Bild. In diesem, in unserer Flut-Anwendung, die das Bild ist. Aber wenn es erlischt und klicken Sie auf Anmelden mit Google erneut, dann wird
dieses Bild wieder auf das Standardbild von
dem Google-Konto geändert werden, weil wir keine Überprüfung durchgeführt haben. Also zuerst würde ich es überprüfen, ob Dokumente Snapshot Datentyp sein wird und schreiben Benutzer vorhanden, die implementiert, wenn Benutzer in der Datenbank vorhanden sind. Ich hätte Sammlungsbenutzer bekommen. Aber doc- und Dokument-ID wird Benutzeranmeldeinformationen dot user dot, UID dot erhalten so. Und diese UID sollte sicherstellen, dass sie nicht null ist. Nun, dies wird zu dieser Datei gehen, die hier gespeichert ist,
überprüfen Sie, ob der Benutzer bereits registriert hat oder nicht. Danach können wir einfach ein, wenn, überprüfen. Wenn der Benutzer vorhanden ist, ist Punkt vorhanden. Wenn der Benutzer existiert, dann können wir einfach für unser Debug drucken, dass Benutzer bereits in der Basis existiert. Aber wenn nicht das erste Mal für diesen Benutzer, dann können wir einen neuen Eintrag in unserer Firestore erstellen. Das Ding war also sehr wichtig. Nun nehmen wir an, wenn ich auf die Anmeldung mit Google klicke, wieder, siehe Benutzer bereits in der Datenbank vorhanden. So werden zumindest die vorherigen Daten nicht aktualisiert. Unsere geschoben mit Nachdruck auf die gleiche Dokument-ID. Jetzt haben wir unsere Google-Anmeldung perfekt funktioniert. Aber nachdem sich der Benutzer anmeldet, müssen
wir sicherstellen, dass wir zum Home-Bildschirm navigieren und auch nicht essen können dann zurück zu unserem Bildschirm, bis wir uns manuell abmelden. Also müssen wir den ungeraden Zustand von Firebase überprüfen. Aber vorher. Lassen Sie uns eine Datei innerhalb von Bildschirmen Verzeichnis erstellen und nennen Sie es Home-Bildschirm. Punkt, Punkt. So wie das. Ja, lassen Sie uns unser Materialpaket importieren. Lassen Sie uns diesen Zustand kostenlos anmelden. Nennen Sie es Startbildschirm. Und wir werden den Standardkonstruktor entfernen. Dann haben wir diesen Herbst. Jetzt in dieser AB-Bar. Lassen Sie uns das einfach aus Text machen. Dann zentriere das durch. Dann sollte die Hintergrundfarbe wählen Farben beginnen. Ok? Und hier hätte ich eine Schaltfläche, die für den Logout-Button ist. Und gib es einfach genug. Ich Punkt k. und nach der AB-Bar würde
ich eine schwebende Aktionstaste geben. Auf unserem Home-Bildschirm. Verschiebbare Aktionsschaltfläche. Dann würde
ich in diesem Kind schreiben, ich kann, ich kann anfangen zu suchen. Warum ich das getan habe, werde ich es erklären. Lassen Sie uns zuerst die CUI erstellen. Jetzt haben wir diese Benutzeroberfläche. Gehen wir zum Hauptpunktpunkt. Und nur zum Testen, lassen Sie uns sehen, wie diese Benutzeroberfläche aussieht. Jetzt starte ich neu. Und lasst uns nachsehen. Siehe, Dies ist der Startbildschirm unserer Message-Anwendung. Also habe ich diesen Suchbaum, Suchknopf, so dass der Benutzer
seine Freunde in dieser Anwendung suchen und sie von dort direkt benachrichtigen kann . Das ist der einzige Zweck, Der Zweck dieser Schaltfläche. Und im Körper werden wir auf diesen Chats haben, mit denen der Benutzer gesprochen hat. Aber es ist, es wird auf dem späteren Video sein, denn im Moment muss er
zumindest zuerst ein Gespräch mit jemandem beginnen. Das war's also. Ich würde es wieder zum seltsamen Bildschirm machen. Nun, stellen Sie sich vor, ich registrierte Anwendung, aber wirklich habe ich bereits angemeldet, aber wir navigieren nicht zum Home-Bildschirm weil wir den Authentifizierungsstatus der Firebase nicht überprüfen. Also im nächsten Video werden
wir das genau machen. Das ist alles für diese Sitzung. Danke.
5. Überprüfen der Authentication: Hi. Um nun die Authentifizierungen zu überprüfen, muss
State v die aktuelle Benutzermethode verwenden, die von Firebase bereitgestellt wird. Und dementsprechend zeigen wir diesem Bildschirm an, ob sich der Benutzer angemeldet hat oder nicht. Und lasst uns hier zur Datei main.js gehen. Als erstes würde ich die zukünftige Funktion schaffen, die uns eine Jungfrau geben wird. Ich würde eingeloggt verwenden. Dennoch werde ich überprüfen, dass der Benutzer bereits angemeldet ist. Was wir tun können, ist, indem Firebase-Punkt-Instanz dot currentUser aufrufen, einfach so. Dann würde ich überprüfen, ob der Benutzer nicht gleich null ist. Dann den Startbildschirm zurückkehren. Wenn es null ist, das heißt, EA ist derzeit nicht angemeldet. Dann getan Kunst Bildschirm, sagen wir. Dies ist also die Funktion erforderlich. Lassen Sie uns nun in der Home-Eigenschaft unseres Widgets implementiert. Verwenden Sie einfach zukünftigen Winder. Und hier wird die Zukunft Benutzer angemeldet sein. Und dieser Baumeister wird uns normalerweise Kontext geben. Und Schnappschüsse sehen. Hierbei wird es uns ein Widget zurückgeben, wie Sie aus der Funktion wissen. Jetzt werden wir einfach überprüfen, ob Snapshot Daten hat. Gibt Snapshot-Daten zurück. Das bedeutet einfach, dass sie dazu neigen, besucht zu haben. Und wir müssen darauf achten, diese Ausrufe zu geben, damit es nicht keines ist. Und wir sind führend darauf hingewiesen, dass wir
zumindest sind sie entweder zu Hause Schule oder Zweifel Bildschirm. Es kann also nicht null sein. Und wenn dies nicht der Fall ist, dann werde ich nur einen kreisförmigen Fortschrittsindikator zeigen. Und dann HF und Janice exekutieren. Speichern wir das jetzt und überprüfen Sie, ob ich direkt auf den Startbildschirm navigiert bin. Sehen Sie, jetzt, wenn ich meine App neu starten, Ich werde auf dem Home-Bildschirm navigiert, bis und es sei denn, ich klicke auf diese ,
das bedeutet Lava-Knopf , die jetzt nicht funktioniert, aber wir sollten darauf klicken und dann nur wir zurück zu gehen auf dem Anmeldebildschirm. Nun, da wir die Benutzerdaten haben, die von den Bränden kommen, das sind diese Daten, natürlich werden wir diese Daten in der Anwendung verwenden und teilen. Und es wird im JSON-Format sein. Es ist um 10 Uhr. Wir erstellen unsere eigene Modellklasse für diese Daten. Also lassen Sie uns einen neuen Ordner in der lib erstellen und
es Benutzermodell dot, dot nennen . Dann studiere. Es sollte Modelle genannt werden. Und darin sollten wir eine Datei namens User model dot dot bekommen. Beginnen wir mit der Erstellung unserer Modellklasse. Ich würde es benennen, ein Modell verwenden. Jetzt. Es wird jetzt Werte dieser Klasse haben, das sind diese Daten. Also fangen wir mit String an. Zeichenfolgenname, Zeichenfolge, Bild, Zeitstempel, der von Firebase stammt. Wir können uns verabreden. Dann String UUID. Lassen Sie uns einen Konstruktor erstellen, der benötigt wird. Dies erforderte diese.name erforderlich, dieses Bild erforderte dies. Und dann ähnlich dieser Punkt UID. So haben wir unser Modell bereit, aber wie Sie wissen, erhalten Sie unsere Funktionen, um unsere JSON-Daten zu serialisieren und zu deserialisieren. Und normalerweise ist dieser Aufrufpunkt von JSON. Und all dieses Konzept ist das Grundkonzept der späteren Modelle. Also ich hoffe, Sie wissen, dass dieses Konzept aus Berlin nur UserModel Punkt von JSON
sagen wird , den ich benenne. Es wird Dokumente Snapshot akzeptiert. Momentaufnahme. Also, was ist das Dokumente Schiff Snapshot. Diese Daten rufen Dokument-Snapshot auf. Jetzt würde ich einfach ein Benutzermodell drehen. Beginnen wir nun mit dem Mittelwert wird Snapshot-Bild sein. Dann lassen Sie es uns kopieren. Set kann wirklich Name sein. Und dann Name. Offensichtlich kannst du das. Ich habe keinen Befehl gegeben. Ich möchte nur diese Bestellung haben. Gleiche Art und Weise. Sieht gut aus. Das Datum und dann die UID werden ID sein. Das sind also nichts anderes als diese Schlüssel auf dem Bild und all diese Tasten. Stellen Sie nun sicher, dass wir diese UserModel-Klasse senden, während Sie zum Home-Bildschirm
navigieren, so dass diese Daten für die Anwendung verwendet werden können. Aber zuerst, lassen Sie uns Firebase-Benutzer in unser Benutzermodell konvertieren, Hutu Hauptpunkt Punkt. Dann hier haben wir diese Benutzeranmeldung und den Benutzerdatentyp, der von der Firebase kommt. Also innerhalb dieser if-Anweisung, werde ich einfach Dokumente Snapshot schreiben. Verwenden von Daten. Für Firebase, Firestore Punkt Instanz Punktsammlung Benutzer. Dann bekomme
ich einfach mit dieser Dokument-ID von uci.edu AD diese Daten von den Bränden, das sind diese Daten. Früher hatten wir diese Daten, die die Benutzerdaten sind. Daraus hole ich den Firestone und wandle ihn
dann einfach in unser eigenes Modellglas um. Und verwenden Sie Modelle, die model.fit einige JSON verwenden, und senden Sie diese Benutzerdaten, die ein Dokument-Snapshot ist. Und innerhalb dieses Startbildschirms möchte
ich es beim Navigieren senden. Also in, innerhalb des Startbildschirms, sollten
wir sicherstellen, dass wir es wie Benutzermodul akzeptieren. Dann Benutzer, und wir nennen es einfach Benutzer. Und dann akzeptiere
ich es durch diesen Konstruktor . So wird der Fehler gemacht. Wenn wir uns jetzt mit Google anmelden, haben
wir zum Startbildschirm navigiert. Und dafür würde ich verwenden, dass mein Durchschnitt und das ist, ich werde es nicht direkt auf den Home-Bildschirm senden. Ich würde es einfach an meine App senden, damit es erneut Daten
aus dem Dateispeicher
prüft und abruft und dann ein Modell erstellt, sonst müssen wir es tun. Wieder. Was ich damit meine, ist, gehen wir zu ungeraden Bildschirmpunkt, Punkt. Und wir hatten keine Anmeldefinanzierung, Kleinkinder zuweisen. Und ganz am Ende, würde
ich einfach Navigator schreiben, den Push und entfernen bis dahin hier. Innerhalb dieser neuen Route. Wenn ich Material Seite Route Bender und Kontakte schreibe, und wenn ich schreibe, wenn ich Homeschooling schreibe,
sehe, ob ich Homeschooling hinzufüge, dann muss ich den Benutzer senden, der das Benutzermodell ist. So viel muss ich tun. Aber wenn ich einfach myapp schreibe, so, wenn ich einfach meine App schreibe. So wird es normalerweise wieder auf diesen Bildschirm gehen. Dann wird es einen Benutzerindikator anzeigen und es wird
die Daten aus dem Dateispeicher erhalten und konvertiert und letztendlich an den Home-Bildschirm senden. Das ist also ein viel besserer Ansatz. Wir müssen den Code nicht immer wieder schreiben. Also lassen Sie uns überprüfen, ob ich neu starte. Mal sehen. Offensichtlich kann ich nicht einchecken, da wir bereits eingeloggt sind. Also lasst uns wenigstens diesen Abmelde-Button erstellen und nutzen. Gehen Sie dazu einfach auf den Startbildschirm. Und hier würde ich uns denken lassen, sorry, nicht diese Suche zu diesem Icon-Button. Async warten ist ahd dot Instanz dot abmelden. Und dann würde ich ein Navigator. Aber schieben und entfernen. Bisher kann ich einfach meine App
auf unserem you-art-Bildschirm schreiben , denn wie wir wissen, dass es nicht authentifiziert ist und er muss wieder einloggen. Und Aspirin fragt nichts als Parameter. So ist es, es macht keinen Unterschied. Mal sehen. Nun, wenn ich darauf klicke,
sehen, ich habe signiert, wurde zum Kunstbildschirm navigiert. Und jetzt, wenn ich auf Anmelden mit Google klicke, mal sehen, was passiert. Und dann Ladeanzeige wird angezeigt und die medizinisch ich wurde auf den Home-Bildschirm gesendet. So funktioniert der Staat. Das bedeutet, wie ich den ungeraden Zustand verwende und sicherstellen, dass sich Benutzer automatisch anmeldet und sich dann auch abmeldet. Das ist also alles für dieses Video. In der nächsten Sitzung würden
wir an dieser Suchschaltfläche arbeiten, so dass der Benutzer die Möglichkeit haben
sollte, seine Freunde in dieser Chat-Anwendung zu suchen. Danke.
6. Search suchen: Willkommen. In dieser Sitzung erstellen wir einfach
einen Suchbildschirm für diese Schaltfläche, so dass, wenn ein Benutzer darauf klickt, zu einem Bildschirm navigieren sollte, wo er in der Lage sein sollte, nach seinen Freunden zu suchen. Lassen Sie uns einfach einen neuen Bildschirm spielen. Und ich würde meinen, wir suchen Screen Dot Dot. Lassen Sie uns unser Materialpaket importieren. Machen Sie es zu einer statusbehafteten Region. Und ich suche Bildschirm. Und wie ich es mit dem Home-Bildschirm getan habe, indem wir auch zu diesem Bildschirm navigieren, würden
wir diese Modellklasse benötigen die dieser UserModel Benutzer. Und lasst es uns in diesem Konstruktor haben. Und dann geben Sie ein Gerüst zurück. Das ist nicht AB Bar bewertet Titel der Suche nach Ihrem Freund. Und dann im Körper, was ich plane, ist die erste Region wird nur ein Text sein. Wir werden jede Suchschaltfläche, was auch immer der Benutzer darauf klickt. Und nachdem er auf den Suchknopf klickt, sollte nur die Funktion ausgeführt werden, was wir in diesem kleinen Video tun werden. Aber gerade jetzt, nur die US-Position, würde
ich eine Spalte benötigen. Dann Kinder, und wie gesagt, ich werde Textfeld verwenden. Also würden wir den Text deklarieren, der sie größer bearbeitet, weil Suchcontroller und er sie nicht so kontrolliert hat. Und innerhalb dieser, Beginnen wir mit der Zeile, das erste Element möchte ich die Zeile, weil ich die Botha Widgets wollen, Widgets in der gleichen horizontalen Weise. Also lasst uns diese Kinder haben. Dann wird ein Textfeld, dass Controller durchsucht werden Controller und Dekoration. Lassen Sie uns ihm Eingabe-Dekoration geben. Text mit dem Benutzernamen. Und Grenze würde
in Boot umrandete Grenze skizziert werden. Und darin, Lasst uns ihm einen Grenzradius geben. Umrandungsradius, nicht kreisförmig. Gib ihm zehn. Also lassen Sie es uns überprüfen. Aber vorher müssen wir sicherstellen, dass wir auf
der Schaltfläche navigieren , die die Dysfunktion verwendet und zum Home-Bildschirm gehen. Und hier auf der On-Premise, schreiben Sie
einfach Navigator Dot Push. Dann mein Seitenlayout, Kontext, vorheriger Bildschirm. Und wir müssen den Benutzer senden, und der starr ist, das ist hier. Und lasst es uns retten. Wenn ich darauf klicke. Was ich habe ist, dass ich etwas falsch gemacht habe, seit es Reihe zwei war, Spalte der Blutung. Also zuerst, ich würde ihm geben, wickeln Sie dieses Ding mit einem Polsterungs-Widget und geben Bettwäsche oder 15, und dann wickeln Sie es durch Hinzufügen Widget. Dann haben wir expandiert. Das bedeutet, den
ganzen Raum zu nehmen . Schnell. Innerhalb geklebt nicht wickeln. Ich schreibe einfach erweitert dein Messer. Ich spare, weil es ihre DevOps so daft, wie sollte die Größe davon sein? Und sie haben in dieser Kolumne etwas falsch gemacht, sollten nicht da sein. Und entfernen Sie dieses Widget. Das bedeutet, dass wir ein Problem darin haben. Wir haben eine Reihe drinnen. Jetzt haben wir das erweitert und alles. Schauen wir es uns an. Ich schätze, weil dieser zusätzliche Columbia-Redakteur da war. Nun, wenn ich darauf klicke, sehen wir unseren Textrahmen mit diesem durch Hinzufügen eines anderen unexpandierten, so dass sie hier weniger Platz sind. Jetzt nach diesem erweiterten Widget innerhalb der Zeile, werde ich eine Symbolschaltfläche geben. Und lassen Sie uns das Symbol geben, um Icons re.search zu sein. Das war's also. Schauen wir es uns an. Siehst du, es sieht aus der Spüle. Zumindest wissen wir, dass wir hier tippen und dann darauf klicken müssen. Und danach werden die Ergebnisse hier gezeigt und das werden wir im nächsten Video tun. Das war's also. Wir haben erfolgreich gebaut.
7. Suchfunktion implementieren: In dieser Sitzung werden wir also an dieser Suchfunktion arbeiten. Also haben wir dieses Textfeld und eine Schaltfläche wirklich verrückt, wenn wir einen Benutzernamen eingeben, dann sollten die Daten in diesem Körper angezeigt werden, das ist aus dem Firestone. Bevor
wir uns also vorwärts bewegen, gehen wir zum Startbildschirm. Ich möchte nur eine Codezeile schreiben. Wenn wir ausschicken. Wir sollten das auch schreiben. Das ist Google. Google Anmelden, Anmelden, Abmelden. Also müssen wir beide diese Codezeile verwenden, um sich abzumelden. Denn wenn wir nicht Google anmelden, abmelden, dann werden wir nicht in der Lage sein, sich anzumelden, weil andere Konto die ganze Zeit, nur ein Konto, das wir verwenden können. Aber deshalb müssen wir sicherstellen, dass wir diese Codezeile schreiben. Ausgezeichnet. Lassen Sie uns erneut zum Suchbildschirm gehen und beginnen, daran zu arbeiten. Ich würde einige Variablen erstellen, die eine Liste mit Karten sein werden. Und ich würde es als Suchergebnis benennen. Es wird ganz am Anfang leer sein. Und ein boolescher Wert des Ladens. Nur um sicherzustellen, wenn wir Daten holen. Wir können Ladeindikator in der Benutzeroberfläche anzeigen. Und diese Liste Zeug Karte ist nichts anderes, als wenn wir nach Benutzern suchen und die Daten kommen, das heißt, diese Daten kommen aus dem Feuersturm. Es wird im JSON-Format vorliegen, das ist Kartenformat. Und ich werde Alda aufbewahren, all diese Karten in dieser Liste. Das heißt, Directory verwendet, dann wird es drei Zuordnungen geben. Und da es sich um eine Liste handelt, werde
ich einen Listenansichtsgenerator verwenden, um alle Benutzer im Körper auszugeben. Dann lassen Sie uns an der Suchfunktion arbeiten. Wir müssen so auf die Suche schreiben. Ich würde es auf der Suche nennen. Dann beginnen Sie mit unserer Firestore, dass diese Firebase feuert speichern Plugin-Instanz, die Sammlung. Und hier würde ich zu Benutzern gehen und eine Where-Klausel verwenden, damit ich den genauen Namen filtern und
erhalten kann , der unabhängig von dem Benutzernamen ist, den wir suchen möchten. Wir können den Tag runterkriegen. Lee wird im Suchcontroller gespeichert werden und dann werde ich einfach dot get schreiben. Also, jetzt danach, werde ich es dann Klausel verwenden. So dass, sobald wir die Dokumente bekommen, die hier ist, Liste der Dokumente. Wir werden prüfen, ob es leer ist oder nicht. Das heißt, was auch immer der Benutzer gesucht hat. Gibt es es es? Also kann ich es nur mit der Länge tun. Und wenn es weniger als 0 ist, können
wir ein Gerüst zeigen,
nicht Gerüst , so dass wir können, so wie Snackbar zeigt Snackbar und dann ein Scharfschütze. Und wir können den Inhalt schreiben, wie kein Benutzer gefunden hat. Das besagte. Und wie gesagt, verwende
ich diesen Ladeanzeiger. Also hier, sobald wir auf den Suchbildschirm klicken, der auf der Suche ist, würde
ich den mittleren Ladeindikator als wahr schreiben. Und wenn es null ist, das heißt, es gibt keine Daten, dann werde ich es wieder falsch machen. Und dann kehren Sie von hier zurück. Das heißt, wir müssen keine doppelten Anführungszeichen ausführen, wenn kein Benutzer verfügbar ist. Aber wenn wir eine Liste von Benutzern haben, dann werden wir diese Wertvariable verwenden. Dann die alle Dokumente. Und dann werde ich es durchlaufen. Und es wird uns Details eines bestimmten Benutzers geben. Und einfach, einfach, würde ich das Suchergebnis schreiben, das ist diese Variable. Dot Add und Benutzerdaten wie diese. Auch. Ich will nicht, dass der Benutzer sich selbst suchen kann. Das heißt, wenn er den Namen John hat. Und wenn wir John schreiben, will
ich das nicht im Suchergebnis. Er konnte ihn in der Zelle sehen, weil er dann nur selbst Messaging sein würde. Also, um sicherzustellen, dass es nicht da ist, dass der Benutzer, der sucht, nicht kommt. Wir können nur Daten schreiben ist nicht gleich starren Punkt user.email, das ist der aktuelle Benutzer. Wenn sie nicht gleich sind, dann können wir verwenden und wenn sie gleich sind, dann würde das nicht in dieser Listenvariable gespeichert werden. Und danach werde ich wieder diesen Set-Zustand verwenden, der als falsch bezeichnet wird. Auch was sie wollen, ist, wenn wir auf so auf Suchfunktion klicken, dann stellt es sicher, dass die Suchergebnisvariable leer ist. Weil wir mehrere Male suchen könnten. Angenommen, ein Mal, das so verwendet, dass Sie, werden
alle Details in dieser Variablen gespeichert werden. Aber wenn er einen anderen Namen eingibt, sollten die Suchergebnisse leer sein. So wie das. Die Funktion ist bereit. Lassen Sie uns an dem Körperteil arbeiten, der sich innerhalb dieser Kinder befindet. Wir haben diese Reihe. Und nach der Zeile werde ich eine if-Klausel verwenden. Das heißt, wenn die Punktlänge des Suchergebnisses größer als 0 ist, das heißt, wenn einige Daten darin enthalten sind. Und wenn nicht, werde ich schreiben, als ob das Laden gleich wahr ist. Zeigen Sie dann eine mittlere starre Breite, kreisförmige Fortschrittsanzeige an. Und lasst uns jetzt arbeiten. Wenn die Suche nicht Punktlänge ist größer als 0. Beginnen wir mit einer erweiterten Region. Da wir einen ListView-Builder verwenden. Also müssen wir erweitert verwenden, so dass es den
ganzen Platz in Anspruch nimmt und da es auch scrollbar sein wird. Also in der Artikelanzahl wird einfach das Suchergebnis schreiben. Aber Land, Lasst uns Schrumpfen schreiben, greifen durch. So nimmt sie die Datenbank erforderlich ist. Dann unten unten haben wir Kontext und den Index. Und dann werde ich einfach einen Listenstil zurückgeben. Ich hätte eine Liste Kachel mit führenden gemacht, wie ich sagte. Und das Kind wird Bild sein.Alle Netzwerk-Suchindex. Und dann diese Bild-Eigenschaft wie diese. Ähnlich im Titel würde
ich den Namen aufschreiben, das heißt Suchergebnis, Index und dann Name. In diesem Untertitel würde ich wie
Brotteig, E-Mail, Index, E-Mail schreiben . Und dann würde
ich ihm in diesem Nachfolger eine Symbolschaltfläche geben. Das wird vorerst leer sein. Und ich werde Icon Icons sein. Nachricht. Ich kann, ich kann Nachricht starten. Leg das hier. Lass es uns retten. Aber da wir nur einen Benutzer haben, wird es nicht funktionieren. Lassen Sie uns abmelden und mit einem anderen Konto signieren. So haben wir mehrere, mindestens zwei Benutzer in unserer Anwendung. Nun, wenn ich auf den Suchbildschirm gehe und mal sehen, kommt es dann? Okay, tut mir leid, ich habe vergessen, diese Funktion zuzuweisen. Das ist diese Funktion auf die Symbolschaltfläche. Suchen Sie, so, dann wird nur es funktionieren. Offensichtlich. Testen wir es noch einmal. Mit diesem neuen Konto. Ich würde suchen könnte VS-Konto sein. Und klicken Sie auf Suchen und sehen. Es funktioniert so perfekt. Und wenn ich so etwas wie John habe, das nicht da ist, und wenn ich darauf klicke, also stelle dir vor, wenn ich darauf klicke, dann werden keine Benutzerschriftart und die vorherigen Daten entfernt da ich dafür gesorgt habe, dass das Suchergebnis leer. Aus diesem Grund auf live. Das war's also für dieses Video. Im nächsten Video werden
wir an diesem Chat-Symbol arbeiten, das so ist , dass, wenn wir einen Benutzer suchen und sie verwenden es erscheint, dann können wir ihn mit diesem Symbol Nachricht und es wird Chat-Bildschirm sein. So sehen wir uns im nächsten Video.
8. Chat erstellen: Beginnen wir mit der Arbeit auf dem Chat-Bildschirm. Erstellen Sie also eine neue Datei innerhalb des statischen Bildschirms und benennen Sie sie. Schattenbildschirm, Punkt-Punkt-Punkt, so. Und hier, lassen Sie uns
Material importieren und dann IT-Immobilien weniger starren Chat-Bildschirm machen. Ich werde diesen Standardkonstruktor entfernen. Denn jetzt nur vorstellen, wenn wir einen Chat-Bildschirm haben, sollten wir
zumindest wissen, wer der Absender und der Empfänger ist. Das ist, wer ist eigentlich der aktuelle Benutzer und die obere Person, mit der er spricht. So weit, dass wir lesen müssen erfordert einige Parameter sind einige Daten in diesem Chat-Bildschirm. Zuerst wird das Benutzermodell sein. Das ist der aktuelle Benutzer, der Messaging ist. Das erste ist das. Dann zweite ist die Freundes-ID,
das heißt, mit wem spricht, wir brauchen Benutzer-ID, das ist eine eindeutige ID. Dann brauchen wir den Namen eines Freundes. Und dann brauchen wir die letzte Zeichenfolge. Freund Bild. Einige, warum ich diesen Freund Namen und Bild brauche, nur um diese Daten zu zeigen. Aber das ist zu hoch, wenn Sie ihre WhatsApp benutzt haben und Sie wissen, wovon ich rede? Es ist ganz oben und Bild wird da sein und der Name dieser Person wird getan werden. Lassen Sie uns nun einen Konstruktor erstellen. Und außer das liest alle Daten, bekam Endbenutzer Punkt, Punkt, Name, dieses Freundbild, so. Und dann in dieser Rechnungsfunktion, lassen Sie uns sagen, ein Gerüst in der App-Leiste gemacht. Lassen Sie uns geben, dass Hintergrundfarbe ist Farbe Startfeld. Und dann dieser Titel, werde ich eine Zeile verwenden, so dass wir mehrere Widgets zusammen ausgeben können. Erstens wird Widget das Bild sein und ich würde es kreisförmig mit Clip rect machen. Starre Umrandung Dds ist gleich dem Radiuspunkt, der ihn so umkreist. Und dann in diesem Kind image.net Freund Bild, das ist die Zeichenfolge und geben Sie ihm eine Höhe von 35. Dann verwendet es Größenfeld mit fünf, nur um einige Abstände und dann Text zu geben. Person, mit der er heute spricht, ist der
aktuelle Benutzer im Gespräch und gab eine andere Größe. Also nicht zu dieser Seite zu navigieren. Wir müssen auf den Suchbildschirm gehen. Und dann haben wir in diesem Stil diese Symbolschaltfläche. Und hier würden wir navigieren, das heißt Navigator, Punkt-Push, Material, Seitenroute, Kontext. Und wir senden an den Chat-Bildschirm, der all diese Daten erfordert. Schreib es eins nach dem anderen. Der aktuelle Benutzer wird starr sein. Dot Benutzer, die wir bereits auf diesem Bildschirm akzeptieren. Friend ID wird nichts anderes als dieser Index sein, dass der Suchindex und hier Sie AD. Ähnlich Name wird Name und Bild wird diese Bildvariable sein. Und auch während der Navigation möchte
ich nur den Status festlegen und den Suchcontroller leer machen. Ich wollte nur, wenn er zurückkehrt,
das heißt, wenn er auf den Zurück-Button klickt, dann kann er einen anderen Benutzer suchen, wenn er will. Das war's. Also lasst uns das testen. Wenn ich nun auf die Schaltfläche Suchen klicke, suchen Sie erneut nach einem Benutzer. Dann, wenn ich auf diesen Chat klicke, kann
ich jetzt sehen, dass das Layout ähnlich ist, was sieben Sie einfach sagen können. Aber wir haben das Bild und wir haben in getan. Und denken Sie daran, ich sende das Bild und benannte über den Konstruktor, so dass es so schnell aussieht. Wenn ich verwendet hatte, wieder, ihre Zukunft wird dort lernen und dann holen alles. Es, eine Erfahrung wäre nicht so groß. Nun, in diesem Chat-Bildschirm, Lassen Sie uns ein Textfeld hier und eine Schaltfläche Senden erstellen, so dass der Benutzer zumindest stipend senden Sie ihnen Nachrichten. Also in diesem Chat-Bildschirm, nach der Bar, gehen wir zum Körper. Und das erste, was ich ein erweitertes Widget verwenden würde. Also würde das Datentextfeld Alda Leerzeichen nehmen, dann einen Container. Und hier baue ich so. Sie werden nur verstehen, weil diese erweitert ist anders, sorry. Dies werde ich ein Treffen erklären. Schreiben wir es zuerst auf und fügt ein. Dann. Dann Dekoration, Box Dekoration, Farbe, weiß, Bordüre ADS, Border-Radius. Nur. Links. Lassen Sie uns Radius kreisförmig 25 geben. Und richtig, Lassen Sie uns wieder Radius kreisförmig 25. Und vorerst, dieses Kind
darin, lasst es uns als leeren Behälter belassen und wir werden nach einiger Zeit daran arbeiten. Und ich will dir das hier zeigen. Dieses erweiterte Widget nimmt hier den ganzen Platz ein. Das ist unsere Lead-Chats werden später hier gezeigt. Und ganz am Ende werden
wir unser Textfeld haben. Und ich möchte diesen Code trennen, da TextField viel Code enthält, einschließlich Firestore-Dienste. Also ist es von Terroristen, erstellen Sie eine separate Datei dafür. Der Code wird also sauber und überschaubar sein. Ich würde innerhalb der Spaltung, die annehmen, wir haben Modelle, wir haben Bildschirme. Lassen Sie uns einen anderen Ordner namens Widgets erstellen. Auf den Widgets, dass die separaten Widgets hier zurückgegeben werden. Und ich würde es Nachricht Textfeld Punkt, Punkt nennen. Da es verwendet wird, um eine Nachricht zu senden, wird
es ein stateful Widget sein. Ich würde es Nachrichten-Textrahmen nennen. Jetzt, wie üblich, werde ich den Konstruktor entfernen. Und in diesem Bildschirm, was wir brauchen würden nur, dass heute unten die aktuelle Benutzer-ID und eine freundliche Zeichenfolge. Aktuelle ID. Und da diese aktuelle ID standardmäßig ist. Arbeit aus dem Feuersturm. Deshalb müssen wir das nutzen. Und dann ein Konstruktor, dieser Punkt-Punkt-Punkt-NTID, dieser freundlich. Jetzt gehen wir einfach zum Chat-Bildschirm. Und nach dem erweiterten Nachrichten-Textfeld wäre die
aktuelle ID Benutzer-Punkt-UID. Und wirklich freundlich. Lass uns eine Sache sehen. Diese UID ist nur eine Zeichenfolge, also lassen Sie uns gehen und es zur Verfügung stellen. Machen Sie es zu einer Schnur wie dieser. Und wir können es auch endgültig machen, weil es sich nicht ändern wird. Jetzt, innerhalb der Funktion. Wir würden einen Container laufen und ihm dann eine Farbe geben. Lassen Sie uns zuerst, was ich tun würde, ist eine Menge weißer Siedler beginnen breit. Und dann etwas Polsterung. In Sets. Lassen Sie uns eine Zeile haben, weil ich eine Textzeichenfolge,
jede Symbolschaltfläche zusammen anzeigen werde . Das erweiterte, was wir getan haben, ist sehr nützlich. Es wird viel Zeit verwendet werden. Denn hier möchte ich, dass dieses Textfeld den gesamten verfügbaren Speicherplatz auswählt. In dieser Erklärung. Geben wir ihm eine Eingabedekoration und ein Etikett. Text sollte beschriftet sein, sollte eine Nachricht eingeben. Füllfarbe. Lassen Sie uns eine Chance geben. Und dann einfach in der Reihenfolge umreißen. Geben wir
ihm eine Polsterung 0. Dann EDS, EDS Punkt kreisförmig, geben Sie ihm 25 ADS. Und da es sich um ein Textfeld handelt, würden
wir einen Textbearbeitungscontroller benötigen. Dieser Controller, mal sehen, was da ist. Siehst du, das sieht so gut aus. Nachricht und null. wollte
ich nur Knopf hier. Also innerhalb dieses F, das erweitert wird, haben
Netze eine große Box mit Breite dy. Und dann würde ich Datei fördern, geben Sie ihm GestureDetector auf Feuchtigkeit wird nichts für jetzt sein. Aber in diesem Kind, Lassen Sie uns einen Behälter Rand Einsätze und geben Sie ihm eine Box. Form wird kastenförmige Punktfarbe mit blau sein. Und darin wird dieses Kind einfach Symbol bedeuten. Ich kann anfangen, Farbe zu senden. Lass es uns retten. Und sehen Sie dies ist, dass die Schaltfläche Senden, Schaltfläche. Wir werden die Nachricht eingeben und sie an den Feuerladen senden. Das ist also alles für dieses Video. In der nächsten Sitzung werden
wir implementieren, dass Speicherfunktionen darin ausgelöst werden.
9. Nachrichten in Firebase speichern: Jetzt ist dies der wichtigste Abschnitt getan , wo wir die gesendete Nachricht in Firestore speichern würden. So wird das Konzept sein, ich werde eine neue Sammlung namens Nachrichten innerhalb der Sammlung des Benutzers erstellen, das ist in diesem und in einem Benutzer, werde
ich eine neue Wahlnachrichten erstellen. Nehmen wir an, so. Und dann, und dann wird es
die ID des Benutzers, mit dem dieser Benutzer spricht, sein Freund nageln. Es wird so sein. Angenommen, Nachrichten. Dann wird es die ID der Person sein, mit der er spricht. Und dann in dieser Sammlung, wieder, in ihr werde ich eine Sammlung namens Chats haben. Und in diesem Chat werden
wir alle Nachrichten speichern, wie Angenommen, Nachricht Hallo, Freunde, dann wird ein anderes Feld Datum sein. Angenommen, ein anderes Feld kann Typ sein. Es wird eine Textnachricht sein. Und das wird automatisch inkrementiert. Nicht das verwendet, weil
es hier viele Chats geben kann. Jemand ist eine Nachricht nur in diesem Video kann eine Menge von Nachrichten sein. Und hier noch zwei. Daten oder T werden die L1 ist zentrierte ID und eine ist, dass sie sagen, Nun, ich mochte das nicht. Ich würde diese Nachrichtensammlung sowohl in den Benutzern erstellen, die
miteinander sprechen , so dass beide aktuelle Nachrichten in ihrem Profil angezeigt haben. Und hier werde ich auch etwas haben, das hier genannt wird, das ist eine Benutzer-ID. In diesem hier werde ich einen letzten Nachrichtenfilm haben. Nur, Sie werden verstehen, warum ich dieses letzte Nachrichtenfeld verwende. Aber im Moment musst du einfach versuchen, richtig zu verstehen, was ich gerade schreiben werde. Was auch immer ich dir gezeigt
habe, ich werde alles in diesen Code schreiben. Also Code zu Nachricht, Textzeichenfolge. Und hier im GestureDetector. Als erstes würde ich eine Variable schreiben, die String-Nachricht genannt ist gleich dem Controller-Punkttext. Ich werde die Nachricht darin haben. Und dann würde ich den Controller ausräumen. Das ist es, was sie haben wollen. Der Typ wird entfernt. Aber wir haben nur verzerrt, also kein Problem. Dann würde ich die Firestore-Instanz verwenden. Doch in dieser Sammlung, Benutzern, würde
ich dieses Dokument dieses Benutzers erhalten, mit dem der currentUser ist. In ihm würde ich eine Sammlung namens Nachrichten erstellen, wie ich Ihnen gezeigt habe. Dann werde ich in ihm ein Dokument für diese Person erstellen. Dieser aktuelle Benutzer spricht an seinem Freund. Und dann würde ich eine andere Sammlung namens Chats erstellen. Und dann füge so hinzu. Ich weiß, dass es ein wenig überwältigend sein kann, aber so können wir es tun. Offensichtlich die ADA und andere Wege als auch. Aber ich habe diese Lösung gefunden. Nun, was wir speichern müssen, ist das Fasten Absender-ID. Zweitens ist die Empfänger-ID. Vielleicht denken Sie darüber nach, warum wir Empfänger speichern, wenn Sie diese Daten bereits gespeichert haben. Aber ich erkläre nur, warum ich das benutze, damit, wenn es ein Absender ist, die Nachricht auf der rechten Seite angezeigt wird. Wenn es sich um einen Empfänger handelt, nehmen wir an, dass die Nachricht auf der linken Seite so angezeigt wird, nur um die Nachricht selbst zu unterscheiden. So wie das. Dann unsere Massen, wenn wir von Beck tippen. Aber wenn Sie möchten, können Sie später auch für diese Dateien implementieren. Es liegt an dir. Und das Datum ist sehr wichtig. So wird es Datum, Zeit jetzt, so dass wir filtern und bringen ihre letzten Nachrichten in absteigender Reihenfolge. Nun, was ich will, ist, nachdem das gespeichert ist, ich hätte wieder eine Firestore, diese Sammlung. Wieder eine Abfrage, dann Vg, aktueller Benutzer. Aber Sammlungsnachrichten. Und hier würde ich etwas in diesem Dokument setzen, das freundlich erreicht, aber nur eins setzen. Das ist die letzte Nachricht, wie diese. Und hier wird es so angezeigt,
diese letzte Nachricht, wenn Sie haben, wenn Sie verwenden, was jetzt getrennt und wenn Sie die Homepage gesehen haben, können
Sie im Untertitel die letzte Nachricht sehen, die Sie gesendet haben oder Sie erhalten haben. Und dann kannst du auf den Chat klicken und den ganzen Chat lesen. Das heißt also, das ist nicht. Versuchen wir, diesen Code zuerst zu testen, da er nur in der Sammlung eines Benutzers
gespeichert wird . Wie ich bereits sagte, sollte der gleiche Code auch für einen Empfänger sein. Aber lassen Sie uns testen, ob es richtig funktioniert oder nicht. Siehst du, es ist jetzt entfernt. Und wir hoffen, dass es in diesem laufenden Jahr gespeichert wird. Das ist die Sammlung dieses Benutzers. Wenn ich darauf klicke, sehen Sie diese Nachrichten, dann ist diese ID und die ID dieses Benutzers identisch, wie ich es erklärt habe. Dann spricht er mit diesem Benutzer. Und wenn ich zu diesem Benutzer gehe, wurde
diese letzte Nachricht weitergegeben. Und Chat war nur ein Check, dass dies, diese Nachricht nur. Nun, das gleiche, was wir für den Benutzer tun müssen, der auch empfängt, so dass es in seinem Profil aktualisiert wird, da das die Nachricht ist. Und gerade jetzt entferne ich das nur, weil wir die gleiche Nachricht an den Benutzer brauchen. Jetzt gespeichert die gleiche Nachricht in dieser Sammlung des Benutzers mit dem aktuellen Benutzer spricht zu diesem Ende. Es endet hier. Danach stimmt es überein, haben Sie den gleichen Code. Datei, dieser Dateispeicher, Punktsammlung Benutzer. Aber Doc. Jetzt hier wird es ein Freund sein. Denken Sie daran, dass der aktuelle Benutzer, wir gehen in den Freund Benutzer und erhalten eine Sammlung namens Nachrichten. Dann verwenden sie diesen Freund ist dieser Benutzer, die Virginia dot aktuelle ID ist. Und wir werden
eine Sammlungerstellen eine Sammlung und hinzufügen,
sagen wir, Netze haben die gleiche Netz-ID wie starre Punktstrom. Ich habe das getan, diese Nachricht wurde Vida geschickt. Dieser Benutzer. Dann die Empfänger-ID. Id. Dann wird die Nachricht Typ sein, wird Text D. Es wird die Sterbenden treffen. Jetzt. Und nachdem es fertig ist. Und wieder, die letzte Nachricht gespeichert. Es ist fair gegenüber dieser Instanz, nicht Sammlungsbenutzern. Punkt, Punkt, Punkt, Punkt,
Punktsammlung Nachrichten, Dot Doc. Aber die aktuelle ID. Das ist einfach geradeaus. Letzte Nachricht ist eine Nachricht. Also weiß ich, dass dies nicht zu verdauen ist, aber ich werde Ihnen vorschlagen,
das Video einfach zu pausieren und zu versuchen, diesen Code Zeile für Zeile zu verstehen. Denn dieses Konzept ist nicht so kompliziert. Aber es gibt eine Menge Code, die auf diese Weise involviert ist. Lasst uns jetzt testen. Wenn ich weiter und wieder suchen, holen Sie den Benutzer. Und jetzt, wenn ich tippe, wie Sie und senden Sie diese Nachricht gespeichert werden, sollte in diesem Benutzer gespeichert werden. Siehe die erste und die zweite. Und hier spricht es mit dieser Person. Die letzte Nachricht war, wie geht's dir? Und wer sendet dann Nachricht Datum? Das war's also. Für dieses Video. Sie müssen dieses Konzept und das Gericht richtig verstehen. Im nächsten Video werden
wir am Abrufen arbeiten, SMS-Nachrichten
senden und es in diesem Körper zeigen. Danke.