Créer un système de participation des employés avec Flutter et Supabase | Rahul Agarwal | Skillshare

Vitesse de lecture


1.0x


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

Créer un système de participation des employés avec Flutter et Supabase

teacher avatar Rahul Agarwal, Flutter Developer & Trainer

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction du cours

      1:14

    • 2.

      Créer un projet de flutter

      6:58

    • 3.

      Initialiser Supabase Client

      9:44

    • 4.

      Créer un écran de connexion

      8:18

    • 5.

      Créer un écran de registre

      6:49

    • 6.

      Créer un cours de service Auth

      5:30

    • 7.

      Méthode pour enregistrer les employés

      4:39

    • 8.

      Méthode de connexion et de déconnexion

      3:56

    • 9.

      Attribuer des méthodes à l'interface utilisateur

      8:27

    • 10.

      Créer un modèle d'utilisateur et des tables de base de données

      10:09

    • 11.

      Créer un cours de service de base de données

      9:06

    • 12.

      Manipuler l'utilisateur Auth State

      5:33

    • 13.

      Travailler sur l'écran d'accueil

      11:59

    • 14.

      Travailler sur l'interface utilisateur de la participation

      5:53

    • 15.

      Implémenter la diapositive pour vérifier

      10:25

    • 16.

      Fonction obtenir les données utilisateur

      13:34

    • 17.

      Table de participation et cours de service

      8:28

    • 18.

      Fonction pour marquer la présence

      15:51

    • 19.

      Fonction pour obtenir l'historique de la présence

      7:37

    • 20.

      Travailler sur l'interface utilisateur

      10:37

    • 21.

      Afficher les données d'historique

      11:43

    • 22.

      Fonction pour obtenir la localisation des employés

      10:38

    • 23.

      Emplacement du magasin lors de l'enregistrement

      9:04

    • 24.

      Fonction pour obtenir tous les départements

      6:58

    • 25.

      Fonction pour mettre à jour les données de profil

      7:27

    • 26.

      Menu déroulant pour sélectionner le département

      11:20

    • 27.

      Travailler pour la signature

      4:45

    • 28.

      Politiques pour le tableau de présence

      9:16

    • 29.

      Tableau des politiques pour les ministères

      2:39

    • 30.

      Politiques pour les employés Table

      4:39

    • 31.

      Testez l'application complète

      3:50

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

360

apprenants

2

projets

À propos de ce cours

Bienvenue au cours complet sur la création d'un système de gestion de la présence des employés avec Flutter et Supabase !

Dans ce cours, vous apprendrez à créer un système de gestion de la fréquentation des employés riche en fonctionnalités en utilisant le cadre multiplateforme populaire, Flutter et Supabase, une alternative open source à Firebase pour le stockage et la gestion des données. Vous commencerez par créer un système d'authentification robuste, permettant aux employés de s'inscrire et de vous connecter avec leurs informations d'identification par courriel et par mot de passe.

En utilisant Flutter and Provider, vous créerez ensuite une interface conviviale qui permet aux employés de glisser facilement pour vous enregistrer et vérifier pour la journée. L'application permettra également aux employés de consulter leur historique de fréquentation pour n'importe quel mois de l'année, de mettre à jour leurs coordonnées personnelles et de leur département tout en conservant une gestion efficace de l'état en utilisant Provider.

Ce cours est conçu pour vous fournir les compétences et les connaissances nécessaires pour créer une application qui peut rationaliser le suivi et la gestion de la présence pour toute organisation. À la fin de ce cours, vous aurez un système de gestion des présences entièrement fonctionnel que vous pouvez présenter dans votre portefeuille à des employeurs potentiels, ce qui démontre votre compétence dans le développement d'applications mobiles robustes et réactives en utilisant Flutter, Supabase et Provider.

Que vous soyez débutant ou développeur expérimenté, ce cours vous guidera à chaque étape du processus de création d'un système de gestion de la présence des employés efficace en utilisant les dernières méthodes de développement et les meilleures pratiques. Inscrivez-vous dès maintenant et commencez votre voyage pour devenir un développeur d'applications mobiles hautement qualifié !

Rencontrez votre enseignant·e

Teacher Profile Image

Rahul Agarwal

Flutter Developer & Trainer

Enseignant·e

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.

Voir le profil complet

Level: Intermediate

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Introduction du cours: Si vous souhaitez créer une application concrète avec du tartre ou si vous souhaitez impressionner des employeurs potentiels grâce à impressionner des employeurs potentiels grâce vos compétences en matière de développement mobile et obtenir l'emploi de vos rêves, ce cours est fait pour vous. Il vous apprendra à créer un système de gestion des présences des employés entièrement fonctionnel système de gestion des présences des encombré et supervisé avec fournisseur comme outil de gestion de l'État. Supervisor est une alternative open source à Firebase et gagne en popularité auprès de la communauté technologique. Nous allons commencer par créer un système d'authentification robuste, permettant aux employés de s'inscrire et de se connecter à l'aide de leur e-mail et de leur mot de passe. Nous créerons ensuite une interface conviviale qui permettra aux employés de passer facilement de la journée à l'enregistrement et au départ. position actuelle de l' employé sera également enregistrée afin de confirmer qu' il se trouve dans l'obscurité. L'application implémentera également des fonctionnalités qui permettront aux employés de consulter leur historique de présence pour n'importe quel mois de l'année, mettre à jour leurs informations personnelles, ainsi que le service de l'entreprise, tout en maintenant gestion efficace de l'état à l' aide du fournisseur. À la fin du cours, vous disposerez d'un système complet de gestion des présences que vous pourrez utiliser dans votre propre organisation ou présenter votre portefeuille sans perdre plus de temps. Allons-y. 2. Créer un projet de flutter: Bonjour, bienvenue sur la toute première vidéo du cours, laquelle nous allons créer un système de gestion des présences des employés avec Flutter et Superbus. Je suppose que vous connaissez déjà le désordre. Et lorsqu'il s'agit de superviser, ce silence est très simple et direct, comme Firebase. Donc, si vous connaissez Firebase, vous ne trouverez pas cela difficile. De plus, j'utiliserai le package provider comme outil de gestion de l'État dans notre projet. Vous devez également avoir des connaissances en matière d'endettement. Alors, sans perdre plus de temps, commençons par créer un nouveau projet en Floride. Accédez au répertoire de votre choix et ouvrez votre terminal. Ensuite, la commande, Flutter. Créez un centre de présence des employés. Vous pouvez évidemment utiliser n'importe quel nom de projet. C'est à vous de décider. Ouvrez ensuite votre terminal. Désolé, ouvrez votre éditeur de code. J'utiliserai VS Code. Alors. Ben, ton projet. Notre projet est créé. Il est maintenant temps de créer un compte supervisé. Ouvrez votre navigateur et saisissez supervise.com. Voici donc la page officielle ici. Cliquez sur Se connecter. Et évidemment, j'ai signé directement parce que je me suis déjà connecté plus tôt en utilisant mon compte GitHub Vous aurez certainement la possibilité connecter avec votre compte GitHub. Il vous suffit de saisir vos informations d'identification et vous serez redirigé vers cette page. Ici. Cliquez simplement sur Créer un projet. N'oubliez pas non plus que pour créer un nouveau projet, vous devez disposer d'une organisation. J'ai donc notamment des voyages. Vous y trouverez une option pour simplement le nommer. Maintenant, ici, le nom du projet sera la présence des employés. Je vais simplement générer un mot de passe aléatoire. Mais choisissez la raison la plus proche. Et le plan tarifaire sera gratuit. Passé ce délai, il met en place un projet. Il vous suffit de sortir votre code VS. Et ici, dans le nouveau terminal, je vais simplement écrire cette combinaison de données. Bob, ajoute des super moyens, plus en plus fort, point ENV. Ce sont les packages qui sont requis. Vous pouvez également accéder à bob point dev et consulter ces packages. Pour faire éclater son battement, il est utilisé pour interagir avec les chiens supervisés. Et ce point ENV est utilisé pour que nos mots de passe ne soient pas compromis. Nous n'écrirons pas le mot de passe directement dans le fichier principal ou dans les écrans, comme ça. Nous allons simplement vérifier le point YAML de la spécification Pub et voir. Nous avons ces deux. Nous avons ceci à installer. Maintenant. Dans le répertoire racine de notre application. Créez simplement un fichier et nommez-le point ENV. Assurez-vous de ne pas créer ceci à l'intérieur de celui-ci. Vous devez créer dans le répertoire racine. Et ici, nous allons stocker les informations d'identification Superbus, comme evaulate Super Base URL est égale à celle-ci et superways k est égal à. Alors. Accédez au tableau de bord ici, cliquez sur Paramètres des projets , puis sur API. Et ici, vous pouvez voir que l'URL est copiée et collée ici. Et puis copiez-le. Et sur une clé publique et collez-la dans cette clé. C'est ça. Vous voyez que vous avez directement copié et collé les détails ici. Après ça. Dans ce fichier YAML Pub Spec Dot, nous devons mentionner ce fichier point ENV dans la section des actifs. Alors allez ci-dessous. Il suffit de le décommenter. N'oubliez pas que ce fichier YAML Pub spec point distingue les majuscules et minuscules. Ainsi, tout espace ou tabulation supplémentaire donnera un C Vous devez faire très attention à cela, tout comme point ENV, et l'enregistrer. OK, c'est tout pour cette vidéo. Dans la vidéo suivante, je vais initialiser notre Superbus et lancer l' application. 3. Initialiser Supabase Client: Bonjour, continuons. Donc, puisque nous avons installé des dépendances, nous devons également configurer Android. Accédez donc à Android, puis à l'application. Et à l'intérieur, vous avez le fichier Gradle de construction. Ici. D'abord. Vous disposez de cette version bile du SDK. Fais 33, comme ça. Ensuite, vous disposez d'une version minimale du SDK. Ouais, ouais, ici. Fais-en 19. Et aussi permettre plusieurs décennies. Avec cette ligne. Si vous avez déjà configuré Firebase, vous savez que cela est requis à chaque fois. Et je vais également accéder à la source Android, manifeste principal d'Android et changer l'étiquette Android en bannissant. Ce sera donc le nom de l'application, ou vous pouvez dire qu'il s'agit du système de gestion des employés d'une entreprise nommée Fang. C'est bon. Ensuite, nous devons initialiser ce client de supervision dans notre fonction principale. Alors allez au site principal ici. Oui, fais-en un lavabo. Ensuite, comme les rigides, ils sont contraignants et apparaissent initialisés. Ensuite, chargez d'abord les fichiers ENV. Je vais le faire tout de suite. Et je vais d'abord importer dot ENV et j'importerai Superbus Flutter comme ceci. Et ici, je vais simplement écrire ce point de commande ENV dot load. Il chargera donc ce fichier ENV point de plusieurs heures. Ensuite, j' initialiserai Supervision. abord, je vais simplement obtenir une URL dans la clé dans une variable séparée . Je vais simplement écrire point ENV, point ENV. Ici. Nous devons écrire le nom de la clé. Si tu le sais. C'est la clé des données. Je vais donc simplement écrire ceci et cela peut être nul. Je vais donc juste m' assurer que c'est nul, puis lui donner la valeur d'une chaîne vide. Ensuite, le superviseur est essentiel. Ici. Il s'agissait de whisky. Après cela, je vais m' initialiser avec la supervision du code, et non pas initialiser. Ensuite, nous devons donner l'URL, qui est superbement cURL. Une clé Anon sera très risquée. C'est ça. C'est ainsi que nous initialisons Superbus. C'est très simple. Ensuite, nous allons structurer notre projet. Je vais juste fermer ceci et Android. Et dans lib, nous allons structurer notre projet en dossiers au lieu de tout écrire sur une seule pile. Créez donc un nouveau dossier appelé screens dans lib. Créez ensuite un autre dossier appelé Constance. Un autre dossier, vous tublez, donc des modèles. Enfin, nous avons des services. C'est donc une meilleure façon d' écrire du code. Et des informations. Greens, crée un fichier. Écran de connexion point, point. Importons du matériel et créons un widget dynamique pour le moment. Écran de connexion. Oui, je vais rendre un échafaudage. Dans ce corps. C'était simplement écrire. Cela fonctionne. Et dans le domaine point point. Tout simplement. Je vais d'abord supprimer ces commentaires et tout supprimer d'ici. Cela provient de la page d'accueil de la classe. Supprimez tout et attribuez l'écran de connexion une valeur à la page d'accueil. Enregistrer. Tout. Après cela, je vais démarrer mon émulateur Android Pixel Five. Vous pouvez également connecter votre appareil physique . C'est à vous de décider. Et je vais essayer de lancer cette application. Voyons maintenant si nous fonctionnons ou s'il existe un éditeur. C'est la première fois, donc cela peut prendre un certain temps. ici là, si tu veux, tu peux juste aller au Superbus flirted Darks. Ici. Et ici. Vous pouvez, vous pouvez voir beaucoup d'éloges ou vous pouvez comprendre si vous n'avez aucune idée de Superbus. Voyons voir. Pourquoi n'avons-nous pas d'autres chiens ? Oui. Vous trouverez ici toutes les requêtes, comment récupérer des données, insérer, comment se connecter, comment créer du stockage, et aussi ceci, cette URL vous sera utile. Cela vous sera utile. Assurez-vous que si vous avez du temps libre, lisez tout ici. J'ai une licence et tout cela doit être accepté. C'est pourquoi cela prend du temps. C'est très bien. On peut attendre. Voir dapp. Et maintenant, l'écran, il fonctionne, est là. Cela signifie que notre application fonctionne parfaitement. Je vais simplement changer ici ce titre en présence des employés et la bannière de débogage en false. C'est ça. C'est tout pour cette vidéo. Dans la vidéo suivante, nous travaillerons sur cette interface utilisateur de l'écran de connexion. Merci. 4. Créer un écran de connexion: Bonjour, bon retour. Dans cette vidéo, nous allons donc commencer à travailler sur l'interface utilisateur de l'écran de connexion. Voici donc l'écran sur lequel les employés peuvent se connecter à leur entreprise, que j'ai nommée Pang, f, a et g. Alors allons-y. Donc, tout d'abord, cela créera des variables pour obtenir la largeur et la hauteur de l'appareil. Donc, tout simplement, le double. La largeur de l'écran est égale à la requête multimédia que les contacts devraient être, ce ne sont pas des contacts. Taille du point, largeur du point. Et de même, copié, collé. Il aura toujours une hauteur verte. Et ce sera élevé. Maintenant, allons-y. Commençons par la victoire. Dans ce corps, j' utiliserai une colonne qui servira de premier contenant des ravages pour les enfants. hauteur du contenant sera la hauteur de base verte divisée par trois. Le poids du contenant correspondra à la largeur de l'écran. Faisons une déclaration. Boîte de rangement, décoration, couleur, couleurs, rouge, accent. Puis bordure. Le rayon sera le rayon de bordure, circulaire. Ça devrait l'être, ça devrait être seulement. Alors à l'intérieur, non ? En bas à droite. Il aura un rayon circulaire de 70. D'accord ? Et à l'intérieur de ce conteneur nous avons la propriété de cet enfant. Ce sera, encore une fois via une colonne, je donnerai une icône aléatoire et d' abord il restera existant : alignement principal, excellent centre de Mendota afin que l'enfant soit envoyé hors de ce conteneur. Et puis nous avons que les enfants seront des étangs à valoriser. Je pourrai démarrer le scanner de code QR. Vous pouvez utiliser un code QR ou vous pouvez donner ce que je veux. Les points blancs, taille A par jour. Donnez-nous ensuite la taille des pierres de hauteur, dy, puis donnez-lui le texte du nom de l'entreprise. Je vais le faire. Style Fang. Textile. La taille des obligations sera de 25. Couleurs : blanc à pois. Poids de la police, épaisseur de police, gras. Sauvegardez tout. Allons-y. Tu vois, ça a l'air d'être en baisse. Nous avons ce rayon inférieur ici. Il s'agit de ce conteneur représentant des galeries rouges en X et vous pouvez modifier la couleur en fonction de vos besoins. Ensuite, dans cet enfant, dans une colonne, je peux obtenir du texte qui se trouve au centre puisque nous avons donné un alignement de l'axe principal au centre du point. Ensuite, nous devons créer deux textes, n'importe quel contrôleur pour ces champs de texte. Pour eux, à des fins de connexion. Entrons donc dans cette classe ici et écrivons le contrôleur d'édition de texte final. Contrôle des e-mails capable de contrôler l'édition de texte. De même, nous avons également le contrôleur d'édition de texte pour le mot de passe. Le contrôleur de mot de passe, c'est qu'ils peuvent faire n'importe quoi. Puis dans le widget de colonne. Ici, créez un autre widget de colonne avec un rembourrage. Alors ci-dessous, voyons voir. Nous avons ce widget de colonne, il se termine ici. Donnez ensuite une certaine taille d'espacement, la hauteur de la boîte 50 plutôt que la profondeur. En ajoutant un widget. Je dirais que le rembourrage est de 20. Et j'adore le rembourrage de la colonne. Maintenant, nous avons ces enfants. Dans ce champ de texte, les enfants auront accès à ce champ de texte. Déclaration, déclaration d'entrée Const. L'étiquette sera du texte. Employé, e-mail, identifiant. Corriger. Je peux, je peux créer une personne. Vous pouvez écrire à une personne, vous pouvez écrire un e-mail, ce que vous voulez. Bordure, contour de la bordure de saisie. Ensuite, nous avons l' option de contrôleur en dehors de la déclaration et nous lui donnerons le contrôleur de courrier électronique. Et après ce champ de texte, donnez un peu d'espacement. Taille, hauteur de la boîte 20. Sauvegardons tout. Vous pouvez voir le code et voir maintenant que nous avons l'identifiant e-mail de l'employé comme celui-ci. Voilà, c'est tout pour cette vidéo. Dans la vidéo suivante, nous compléterons cet écran de connexion et créerons l'écran d'enregistrement. Merci 5. Créer un écran de registre: Continuons à travailler sur l'écran de connexion. En dessous de cette taille. Créez un autre texte. Vous pouvez simplement copier ce texte et coller. Ici. Ce sera un mot de passe. Je peux Solvay, je peux commencer la chance. Le contrôleur sera un contrôleur de mot et le texte masqué sera vrai. C'est-à-dire que tout ce que nous tapons ne doit être montré à personne d'autre. Elle viendra sous forme d'étoiles. En dessous de ce texte, vous trouverez un espacement. Boîte de taille 30. Et puis allons-y. Donnez-lui une taille de boîte. Sa hauteur sera de 60, soit une infinité à deux points. L'enfant sera surélevé. Ce texte écrit dans le bouton sera connecté. Et nous lui donnerons également un style technique. Taille de police 20. Rendez-le constant. Donnez également du style au bouton surélevé. Donc, voici comment donner du style à un bouton surélevé à dix points . La couleur d'arrière-plan sera une couleur accentuée par le rouge. Et la forme sera arrondie. Bordure rectangulaire, rayon de bordure, rayon de bordure. Circulaire aujourd'hui. C'est juste que cela devrait être à la fin de la discussion. C'est ça. Allons y jeter un œil. voyez, le bouton a également l' air bien. Maintenant c'est l'heure. Nous créons un autre écran pour l'enregistrement. Donc, à l'intérieur de l'écran, évaluez simplement le point d'écran enregistré. Il s' agit donc évidemment de la page où les nouveaux employés peuvent s'inscrire, copier et coller ce code depuis l'écran des employés ici. Ensuite, nous allons tout d' abord changer le nom de l'écran. D'accord ? Maintenant, dans l'échafaudage, nous aurons un MBA afin pouvoir également afficher ce bouton de retour. Écrivons simplement la barre AB, les couleurs de fond, l'accent rouge, l'altitude zéro. Et je vais simplement modifier la hauteur pour l'ajuster avec la barre d'applications. Et enfin, dans le bouton, je vais écrire ici registre. C'est ça. Seulement ces trois modifications. Enregistrer. Maintenant, nous avons également l'écran d'enregistrement. Passons maintenant à l' écran d'enregistrement à partir de l'écran de connexion. Accédez donc au fichier à points de l'écran de connexion. Ici. En dessous de cette taille de boîte. Je vais donner un peu d'espace avec cette zone de taille D. Et créons un bouton de texte qui naviguera vers lequel naviguera vers cet écran de registre. Je vais donc simplement ajouter du texte. Êtes-vous un nouvel employé inscrit ici ? Et lors de l' évaluation sur site, parcourez leur Bush. J'espère que vous connaissez déjà ces commandes. Ce sont toutes les bases de la navigation nous reste plus qu'à écrire du texte ici et nous l'enverrons à cet écran d'enregistrement comme celui-ci. Et c'est une const. C. Enregistrez tout. Maintenant, nous avons la connexion et si je clique sur Enregistrer ici, vois que nous avons également l'écran d'enregistrement. Et ici, dans la barre d'applications, nous avons le bouton de retour, sur lequel nous pouvons à nouveau accéder à l'écran de connexion. Voilà pour cette vidéo, nous avons créé avec succès l'interface utilisateur pour la connexion et l'enregistrement. Rendez-vous à la prochaine session. 6. Créer un cours de service Auth: Bonjour, bon retour. Il est donc temps de commencer à travailler avec des données, ou vous pouvez dire « état ». Et à cette fin, nous utiliserons le fournisseur comme outil de gestion de l'État. Maintenant, installons le package du fournisseur dans ce terminal. Écrivez simplement une lettre et un fournisseur. C'est ça Vous pouvez également vous rendre sur le site Web bob.gov et le diffuser à partir de là. Il suffit de vérifier. Oui, nous avons le fournisseur. Maintenant, créons d'abord une classe utils. Donc, dans le dossier utils, créez un nouveau fichier. Point point. Nous allons créer une fonction statique pour afficher le snack-bar. Étant donné que cela sera utilisé à de nombreuses reprises. C'est pourquoi je crée une méthode distincte pour cela. Importez simplement du matériau plutôt que du verre. Tu culines cette épaisseur et cette largeur. Donc snack-bar. Nous accepterons le message, le contexte de la cloche et une valeur optionnelle de couleur, qui peut être nulle. Puisque c'est facultatif. Ensuite, nous écrirons scaphoïde, messager hors contexte, snack-bar à points. Donc ça, ce code vient de Flatter. N'oubliez pas, snack-bar. Maintenant content, je vais donner un texte et envoyer un message ici. Et dans ce snack-bar, dans ce serpent, mais nous avons cette couleur de fond. Ce sera de la couleur. C'est ça Donc, s'il est nul, il retrouvera sa couleur par défaut. Maintenant, nous avons cette fonction utils ici. Créons maintenant notre classe de service artistique. Maintenant, les choses vont devenir intéressantes. Perspectives. Des services, non ? Des enquêtes, sombres, sombres. Nous allons écrire ici toutes les méthodes liées à l'authentification. Commençons donc par emballer le matériel, puis importons, supervisons le colis. Créez ensuite les enquêtes artistiques de classe, qui seront étendues, modifiées, notifiées ou puisque nous utiliserons le fournisseur. Donc, tout d'abord, je vais créer une instance du client Superbus. Byways Gland Supervision est donc égal à un client point d'instance superbase. Il s'agit simplement de créer une instance. Ensuite, je vais créer son chargement, variable. Est en cours de chargement. J'ai créé une variable privée pour chaque chargement , puis créé un getter et un setter afin que les utilisateurs extérieurs à cette classe ne puissent pas accéder directement à cette valeur. Ils doivent passer par là, ils ne peuvent donc pas le modifier directement. Un service étrange, ils ne peuvent pas le faire. Ils doivent utiliser cet ensemble de méthodes. Méthode. Le set est en cours de chargement. Nous enverrons une valeur booléenne. Ce sera le cas si le chargement est égal à la valeur. Et prévenez les auditeurs afin que tous ceux qui écoutent ce service étrange puissent se rafraîchir. Alors c'est ça. Pour cette vidéo. Dans la vidéo suivante, nous travaillerons sur différentes méthodes. Merci 7. Méthode pour enregistrer les employés: Bonjour, bon retour. Créons maintenant une méthode pour permettre à un employé de créer un compte. Dans la classe des arts ou du risque. Une fonction future. Inscrivez un employé. Comme ça. Nous aurons besoin d'un e-mail, une chaîne, d'un mot de passe, ainsi que des contextes de la cloche pour afficher ce snack-bar. Ensuite, nous allons intégrer le code dans le bloc try catch. Cet essai que je vais faire en premier est défini, se charge sur true. Ça l'est. Je vais utiliser cette méthode de réglage. Ensuite, je vérifierai si le courrier électronique est égal à vide. Notre mot de passe est égal à Md. Puis lancez une erreur. Les baleines sont obligatoires. Et sinon, j'écrirai la requête pour les signer. C'est-à-dire que ce type de données, qui est le retour, s'appelle la réponse artistique. Ensuite, j'ajouterai que l'instance Await Superbus est cette variable point, point, signe comme ceci. Et ici, nous devons envoyer cet e-mail et le mot de passe. Et après cela, nous allons montrer le snack-bar utils dot show. Le message sera un succès. Vous pouvez maintenant vous connecter et la couleur sera vert foncé. Ensuite, je vais simplement écrire, parcourir le troisième point, pop. Et set se charge sur false. Voici donc le code. Et s'il y avait un additionneur ? Tout d'abord, ce que je vais faire, c'est qu' un ensemble se charge sur false. Ensuite, je vais montrer ce snack-bar utils point show snack-bar. Le message sera un point toString. Les contextes seront des contextes, mais la couleur sera le rouge. D'accord ? C'était donc la méthode d'enregistrement. Et je vais simplement accéder à la documentation ici. Et je vais vous montrer cette ligne qui signe un utilisateur C, vous obtenez Dakota, voici la réponse, la supervision ou cette connexion avec mot de passe. C'est le signe dans l'étude. Nous avons créé un nouvel utilisateur et inscrivez-vous par point C. C'est donc très simple. Vous obtenez également l'utilisateur à partir de la réponse. Voilà, c'est tout pour cette vidéo. Dans la vidéo suivante, nous écrirons la méthode de connexion, de déconnexion et Q. 8. Méthode de connexion et de déconnexion: Bonjour, poursuivons nos méthodes. Et en dessous de cette fonction d' enregistrement, créons une autre fonction, ou ma troisième, vous pouvez dire pour vous connecter, utilisez ce futur. Encore une fois, employez ici aussi. Nous vous demanderons mot à la mode par e-mail, le contexte des factures. Et ce code est assez similaire. Ce que vous pouvez faire, c'est copier ce code, coller ici, et puis nous avons le chargement de True Art Response. Ce sera un mot de passe en poids de sinus. Et je n'ai pas besoin de montrer notre navigateur ici. Il suffit de régler le chargement sur false. Et supposons que nous ayons une erreur. Ça va s'arrêter ici. Je vais céder. En dessous de cette grille de fonctions. Une autre fonction demande la déconnexion. C'est très simple, comme un poids. Alors, offrez du Dot Art, déconnectez-vous. Et nous en informerons les auditeurs. Nous allons également créer un getter pour que cet utilisateur obtienne l'utilisateur actuel depuis Superbus. Supervisez simplement cette œuvre d'art, pointez l'utilisateur actuel. Comme ça. C'est ça. Cela se produira si l'utilisateur signe ou non. Maintenant, nous avons le fournisseur ici, n'est-ce pas ? Nous devons indiquer notre fournisseur dans ce point principal, les points, afin que le nez soit plus plat que nous avons fourni dans notre application. Donc, tout simplement, ici avec un fournisseur rigide appelé multi-fournisseurs. Le fournisseur, puisque nous aurons plusieurs fournisseurs plus tard. Ici. Ici, écrivez simplement, informez votre fournisseur. Créez ensuite. Et nous avons le contexte des arrêts de bus ici. Et écrivez un service étrange. Tout simplement comme ça. C'est ça. C'est ainsi que vous déclarez les fournisseurs dans une application Flutter. Voilà pour cette vidéo. Dans la vidéo suivante, nous allons attribuer ces méthodes à l'interface utilisateur. Merci. 9. Attribuer des méthodes à l'interface utilisateur: Bonjour. Il est donc temps d'attribuer cet enregistrement ainsi que la fonction de connexion à notre interface utilisateur. Allez donc à l'écran d'enregistrement. Dans ce bouton d'enregistrement. Je vais l'emballer en mode surélevé mais ensuite intégré consommateur afin que nous puissions accéder aux propriétés et aux méthodes depuis le service AAD. Et je vais utiliser cette méthode pour que ce widget complet, c'est-à-dire la fonction de facturation, ne soit pas reconstruit encore et encore, seule cette section sera pas reconstruit encore et reconstruite. Écrivons donc comme un consommateur, un consommateur. Ici, nous devons mentionner le fournisseur que nous utilisons. Ensuite, nous avons le constructeur. Cela aura disparu des decks ou une instance de fournisseur de services. Cette prison n'est pas utilisée. Ici. Nous devons retourner cette boîte de cette taille. Je viens de recevoir de la pâte. Donnez un point-virgule. Ici. Ça en fait quatre. D'accord, nous n'avons qu'à supprimer ceci, c'est tout. Nous avons donc agi. De plus, nous afficherons un indicateur de chargement et de chargement de manière conditionnelle. Ici. Dans cet enfant, j'écrirai point étrange sur le fournisseur de services en cours de chargement. Si c'est vrai, affichez l'enfant au centre et c'est un indicateur de progression plus cool comme celui-ci. C'est-à-dire que si le chargement est vrai, Afficher l'indicateur de progression circulaire. Et si ce n'est pas le cas, alors sur site, nous écrirons « fournisseur de services étrange », « employé enregistré ». Nous avons ici le bon mot de passe contenant le texte point du contrôleur de messagerie . Texte à points du contrôleur de mot de passe. Et ici, je vais aussi vous faire part d'un rêve. Et s'il y avait de l'espace supplémentaire ? Cadre ? K ? Ce consommateur est donc le concept de fournisseur. Vous devriez donc au moins connaître ce concept. Alors. De même, accédez à l'écran de connexion. Ici. Nous avons ce 1 s, je suppose. Oui. Oui. D'accord. Ouaip. Ici. Cette taille a été emballée auprès de ce fournisseur de services directs aux consommateurs. Ensuite, nous avons le constructeur. Il est devenu une instance de texte d'une classe de service artistique qui est légèrement, vous pouvez le nommer n'importe quoi. Et nous avons le chai, puis il suffit de renvoyer ce bouton de connexion. Cet enfant. De même, ici à cet enfant, nous le donnerons conditionnellement. Le goût. Un service étrange est fourni en cours de chargement. Puis const center, indicateur de progression circulaire. Comme ça. Et dans la presse, nous écrirons fournisseur de services étrange, un employé connecté par point. J'ai essayé le contrôleur de courrier électronique, le point text, le contrôleur de mot de passe point txt. Et là encore, vous pouvez faire les réglages. C'est un succès. Sauvegardez tout. Maintenant. Va les voir. Tableau de bord Superbus. Ici. Authentification économique. Dans ces fournisseurs, comme vous pouvez le constater, le courrier électronique est activé par défaut. Je vais simplement désactiver cet e-mail de confirmation car nous devons vérifier chaque e-mail avant de vous inscrire. Plus tard, si vous le souhaitez, vous pourrez l'activer. Maintenant, cliquez sur Enregistrer. Alors maintenant, le courrier électronique est là, comme si nous n'avions plus d'utilisateurs. Voyons enfin si cela fonctionne ou non. Maintenant, si je donne quelque chose et que j'écris 12345 et que je clique sur Connexion, vois que nous avons une exception, des informations de connexion non valides. C'est-à-dire que cet e-mail et mot de passe ne sont pas enregistrés comme maintenant. Je vais l'enregistrer. Utilisez l'e-mail de votre choix. Puis mot de passe, cliquez sur Enregistrer. OK, succès. Vous pouvez maintenant vous connecter. Voir. Maintenant, si j'écris ce mot de passe, il aurait dû. De toute évidence, maintenant je ne fais rien. Nous ne serons redirigés vers aucun écran pour le moment, évidemment, parce que nous n' écoutons pas les modifications. Mais si j'y vais et que je recharge, vous voyez, l'e-mail a été enregistré avec succès. Voilà, c'est tout pour cette vidéo. J'espère que vous avez appris et compris jusqu'à présent. Rendez-vous lors de la prochaine session. Merci. 10. Créer un modèle d'utilisateur et des tables de base de données: Bonjour, bon retour. Nous allons donc maintenant créer un modèle pour les données utilisateur. Donc, dans le dossier des modèles, créez un nouveau fichier appelé User model dot dot. Maintenant, toutes ces données seront stockées dans la base de données après l'enregistrement de l'utilisateur. Donc, à l'heure actuelle, lorsque nous sommes seuls, nous pouvons voir ces données dans la section d'authentification. Mais que se passe-t-il si nous voulons que le nom de l'employé ou département utilise les données que nous devons stocker dans la base de données ? Alors disons Glass. Modèle utilisateur. Les données qui apparaîtront à venir seront binaires, un identifiant de chaîne, puis une chaîne fine, un e-mail, nom de la chaîne finale, un vinyle. Faites-le grand. Département Final Int. Comme nous allons créer une autre table pour le département et un outil de liste, l'identifiant correspondant sera une clé étrangère à la clé primaire. Si vous connaissez le concept du langage SQL, puis une chaîne binaire, identifiant de l' employé est l' identifiant que nous avons créé. C'est-à-dire que ce sera une idée unique. Créons un constructeur. Ensuite, l'identifiant requis, obligatoire. Ils ne sont pas envoyés par e-mail. A acquis ce nom et ce département. Comme c'est dans un livre libéral, nous n' écrivons pas ce qui est nécessaire. Il y a un numéro d'employé à points. Créez maintenant une méthode d'usine pour convertir les données JSON provenant de la super base vers ce modèle. Donc, le modèle utilisateur de l'usine d'assemblage pour le modèle utilisateur point Rahm, Jason , cartographie, chaîne des données dynamiques et renvoie un modèle utilisateur. Et ici, vous devez écrire des données. L'identifiant est conforme normes GAAP. Le service informatique basé sur les bits est laissé. Ce sera un e-mail. Cela sera nommé. Ces noms ou noms de colonnes, que nous créerons dans l' identifiant d'employé de ce service Superbus. OK, sauvegardez toutes ces choses. Cela n'est pas obligatoire. Maintenant, créons un autre département du tableau. Passons à un navigateur. Accédez à votre navigateur. Accédez ensuite à l'éditeur de tables. Créez ensuite une nouvelle table. Nom. Départements. Alors n' activez pas IRLS pour le moment. Et nous n'avons pas non plus besoin de temps réel pour ces données. Créez simplement une colonne de titre. Faites-en un texte. C'est ça. Sauvegardez-le. Ensuite, insérez quelques données ici. Donc, ici, il y aura d'abord les ventes, puis le département, le service d'identification, puis le marketing et les ressources humaines, puis puis le marketing et les ressources humaines, puis les finances. Ce ne sont que les départements d'une entreprise qui fonctionne ET. J'ai donc saisi des données. Supposons que vous puissiez créer une autre application pour l' administrateur de l'entreprise. Il peut saisir ces données depuis son portail d'administration. C'est à vous de décider. Nous avons maintenant les départements. Ils créeront une autre table appelée employés. Salariés. Encore une fois, supprimez le RLS pour le moment. Et ensuite. Cet identifiant sera une clé étrangère pour l'identifiant de l'utilisateur artistique. Ceci, donc cet identifiant sera même que l' idée authentifiée de l'utilisateur. Il suffit de le sauvegarder. Ensuite, donnez-lui un nom. Faites-en un texte. Ensuite, nous avons cet e-mail. Donnez-lui un texte. Donnez ensuite une ligne pour la colonne du département. Ce sera une clé étrangère pour l' identifiant du département comme celui-ci. Ensuite, nous avons le numéro d'identification de l'employé. Identifiant. Cela s'appliquera également au texte. Nous avons donc deux clés étrangères, département et l'identifiant. C'est principalement aussi le cas. Sauvegardez-le. J'espère que vous comprenez que ces tableaux sont les mêmes que celui-ci. Ces IDE de données peuvent contenir l'identifiant d'un employé du service. Enfin, dans leurs constantes, ils vont créer les constantes de nom de fichier point point. Nous écrirons qu'ils nommeront les variables esthétiques ici, il est donc facile de les utiliser ultérieurement n'importe où dans l'application sans aucune faute de frappe. Comme du verre, des constantes. Cette prise a disparu. La table des employés est égale aux employés. Et ce foutu département est égal à deux départements. C'est ça. Nous avons fait beaucoup de choses dans cette vidéo. Rendez-vous lors de la prochaine session. 11. Créer un cours de service de base de données: Bonjour, bon retour. Dans cette vidéo, nous allons travailler sur la création d'une classe de service de base de données. Nous avons donc eu tout à l'heure les enquêtes sur les œuvres d'art. Il est temps de créer un autre fichier dans les services et de le nommer DV, surveys point point. Créez donc un service de base de données de classe qui s'étendra pour modifier le modificateur, puisque c'est le cas, nous allons l' utiliser, utilisez-le en tant que fournisseur. Créez ensuite une instance du client Pelvis. Le superviseur est égal au client point de l'instance de supervision. D'accord ? Maintenant, la première fonction que nous allons créer consiste à insérer de nouvelles données utilisateur. Ils limiteront l'insertion d'une nouvelle table de base de données utilisateur que nous avons créée pour les employés. Nous devons y stocker ces informations. De l'utilisateur. Nous vous demanderons ou saisirons un identifiant e-mail, c'est-à-dire l'identifiant artistique. Puisque nous avons mentionné ici que l'idée serait un don étranger. C'est la seule raison pour laquelle ils sont insérés dans la base de données. La commande est purveys instance dot à partir de quelle table ? Le nom de la table figure dans cette table des employés de départ constante. Ensuite, la requête est insérée directement à l'aide d'un point. Ici, nous devons envoyer une valeur cartographique. C'est ça Il s'agit de la seule requête nécessaire pour créer notre insertion de nouvelles données. Ici. L'identifiant sera un identifiant. Le nom sera vide puisqu'il s'agit d'un nouvel utilisateur. L'e-mail sera un e-mail. Alors c'est nouveau, c'est l'identifiant de l'employé. Nous devons créer une fonction à générer. Nous allons le créer, puis le département sera nul pour le moment. J'espère que nous avons le ministère, oui, nous l' avons là. L'utilisateur peut mettre à jour son département ultérieurement dans la section profil. Maintenant, nous devons créer une fonction pour obtenir un identifiant aléatoire. Créons donc une chaîne, générons un identifiant d'employé aléatoire. Maintenant, nous allons utiliser la fonction aléatoire ici. Cela vient de la bibliothèque de mathématiques. Maintenant, ce que je veux, personnages que je veux, c'est juste le nom de l'entreprise. Supposons f, a et g, puis F majuscules, a et G, puis tous les nombres comme celui-ci. Cela signifie donc que la fonction créera l'identifiant à partir de ces chiffres uniquement, c' est-à-dire uniquement à partir de ce personnage. C'est, c'est juste ma préférence. Vous pouvez utiliser tous les caractères, de A à Z. Je suis juste en train d'utiliser celui-ci. Alors. Je pourrais vraiment écrire une fonction que j'ai moi-même obtenue sur Internet. Liste, génération de points, pays, Taïwan, huit caractères. Et voilà, tous les personnages. Point aléatoire, next, int, longueur des points des caractères, et enfin, à la fin, joignez les points comme suit. Donc, celui-ci, Chen, j'ai moi-même trouvé un dieu sur Internet. Vous pouvez également utiliser n'importe quelle autre fonction de génération si vous le souhaitez. À quoi sert cette chaîne ? Il crée un identifiant aléatoire à huit chiffres à partir de ces caractères. Maintenant, appelez cette fonction ici. La fonction d'insertion d'un nouvel utilisateur est prête. Maintenant, nous appellerons cette fonction d'insertion de nouvelle fonction lors de l'enregistrement d'un nouvel utilisateur. Accédez donc au service AAD. Pendant que nous sommes ici, lorsque nous nous inscrivons. Maintenant, voyons voir. Nous avons la réponse artistique finale ici. Je vais simplement écrire si les réponses ne sont pas égales à null, puis ça et coller le tout ici. Tout d'abord, je vais attendre. Je dois créer une instance de ce service DV en haut. Par un service de base de données nul. Le récent. Créez une instance afin que nous puissions utiliser les fonctions. Alors ici, je vais écrire en dessous de ceci, au-dessus de cet utilitaire, Divi Surveys Point Insérer un nouvel utilisateur. Vous pouvez utiliser l'e-mail et l'identifiant de Lee comme réponse à un point d'identification. Ceci. Nous devons envoyer l' e-mail et ils sont minuscules. Ensuite, nous montrerons un snack-bar qui apparaît à proximité. Je vais simplement écrire avec succès et je ne veux pas que l'utilisateur le fasse à nouveau et puis ses identifiants de connexion. Donc, ce que je peux faire, c'est appeler la fonction de connexion ici, comme ceci. Connectez-vous à un employé. J'ai le mot de passe et le contexte de l'e-mail. Et puisque le chargement du colon est faux ici aussi. Je vais donc supprimer de la fonction le fait qu' il y a des informations sur Chen. Je ne veux pas qu'ils soient définis comme se chargeant sur false car c'est un appel direct à l'intérieur de la connexion d'un employé. Ici. J'espère que vous avez compris que j' ai appelé cette fonction ici afin que l'utilisateur n'ait pas à saisir à nouveau cet e-mail après son inscription. Imaginez que vous êtes enregistré et que vous deviez à nouveau accéder à la page de connexion et saisir à nouveau les mêmes données de connexion. C'est la seule raison. Maintenant, puisque nous avons ce nouveau fournisseur, je vais le déclarer dans le multifournisseur. Alors allez-y, copiez cette ligne, collez-la et écrivez dv service. C'est ça Voilà, c'est tout pour cette vidéo. Continuons lors de la prochaine session. 12. Manipuler l'utilisateur Auth State: Bonjour. Nous avons donc tout prêt. Il s'agit de la partie enregistrement et connexion. Maintenant, à l'écran Insights, créez un écran d'accueil afin que l'utilisateur puisse y accéder après s'être inscrit avec succès. Il suffit donc d'importer du matériel, puis de créer un état rigide, le nommer écran d'accueil. Ensuite, retournez simplement un échafaudage centré sur le corps de l'enfant. Et je vais l'écrire sur l'écran d'accueil. Ce ne sont donc que des données factices pour le moment. Juste le simple widget de texte au milieu de l'écran. Maintenant, nous devons vérifier, c'est à ce moment-là que l'utilisateur ou les épingles doivent vérifier s'il est connecté ou non. Autrement dit, s'il s'agit d'un nouvel utilisateur qui s'est déjà connecté. Nous devons donc lui montrer l'écran qui est la page de connexion ou l' écran d'accueil de manière conditionnelle. Pour cet écran d'aperçu, créez un nouvel écran appelé écran de démarrage. Point point. Encore une fois, importez du matériel. Créez ensuite un rigide apatride, appelez cet écran de démarrage. Alors, ici, dans la ceinture. Tout d'abord, je vais appeler le fournisseur concerné. En d'autres termes, les enquêtes impaires sont équivalentes à un fournisseur de contexte. Et puis le service. Ensuite, je retournerai le fichier en conséquence, si l'utilisateur actuel du service AAD est égal à null, puis à l'écran de connexion, à l'écran d'accueil. C'est ça. Je sais qu'auparavant , après m'être inscrit, j'ai également adoré les détails. Donc, pour l'instant , je vais fermer les enquêtes artistiques afin que cette session soit terminée. Et allez au point principal et faites de l'écran de démarrage l'écran de démarrage comme écran racine. Comme ça. C'est ça. Voyons voir, impossible de passer. Quel est le problème ici ? D'accord. Accédez simplement au fichier main.out et à l'écran d'accueil et commentez ceci pour le moment. OK, pour notifier la liste encore et encore. C'est-à-dire, ça ne l'est pas. Il est donc évident que nous n' appellerons plus cette fonction ici plus tard. Mais maintenant, puisque nous avons cette section de base de données ici, nous devons accéder à l'authentification et supprimer cet utilisateur car auparavant, nous n'avions pas enregistré les détails de l'utilisateur dans la base de données. Supprimez cet utilisateur, nous nous enregistrerons à nouveau. Maintenant, sortons notre application. Cliquez à nouveau dessus dans l'e-mail. 345. S'inscrire. Voyons maintenant si nous nous sommes connectés directement ou si nous ne nous sommes pas enregistrés avec succès. Et nous sommes directement redirigés vers l'écran d'accueil. C'est ce dont je parlais. L'utilisateur n'a pas besoin de se reconnecter car c'est une bonne expérience, je pense. Donc. Maintenant, si je redémarre, voyons quelle page est-ce que je vois ? Je vois le login ou directement l'écran d'accueil. Et voyez si nous sommes sur l'écran d'accueil. n'y a pas d'écran de connexion et tout cela, car nous gérons également le statut de cet utilisateur. Alors merci. Dans la vidéo suivante, nous travaillerons sur la partie de l'interface utilisateur de l'écran d' accueil. 13. Travailler sur l'écran d'accueil: Bonjour, bon retour. Commençons maintenant à créer une barre de navigation inférieure. Sur l'écran d'accueil, vous verrez que le homeschooling est actuellement vide. Travaillons donc là-dessus. Accédez à l'écran d'accueil. Ici. En dessous du corps. Créons une navigation inférieure, une barre de navigation. Ce sera un container. C'est la valeur. La hauteur du récipient est alors de 70. Ensuite, donnez une certaine marge. Const, les incrustations de bord sont uniquement à gauche, 12, à droite, 12, en bas 24. Ensuite, décoration. Offrez une décoration à une boîte à concours. Alors ici, donnez-lui de la couleur. Couleurs : blanc à pois. Puis border-radius. Rayon de bordure, rayon du point, point circulaire pour t. Ensuite, donnez également un effet d' ombre à boîte. Il accepte un tableau et la seule valeur que nous donnerons est box-shadow, puis duller. Couleurs, foncé, noir, 26, rayon de flou. Puis décalez. La valeur de décalage sera de 22. Voyons donc à quoi ça ressemble. voyez, nous avons cette barre de navigation en ce moment, c'est juste un certain conteneur. Nous allons ajouter les valeurs ici. Ils seront des icônes ici. Et pour cela, j'utiliserai une bibliothèque connue sous le nom d'icônes Font Awesome. Il suffit donc d'ouvrir le terminal, extrémité du terminal à droite, plus plat. Ajouter une police. Une lettre géniale. Voici donc le nom que je peux nommer, c'est le nom du package. Appuyez sur Entrée. Vous pouvez également accéder au dev et rechercher ce package si vous le souhaitez. Ce package nous permet d'utiliser de nombreuses icônes. Dans cette application. Nous n'utiliserons pas autant d'icônes. C'est-à-dire que si vous le souhaitez, vous pouvez également le supprimer ultérieurement. Pour que cela fonctionne, vous devez arrêter l' application puisqu'il s'agit d'un nouveau package , puis l'exécuter à nouveau. Je vais juste fermer ce dossier. Et voilà, je n'ai plus besoin de ces fichiers maintenant. Uniquement l'écran d'accueil. D'accord ? Que se passe-t-il ? Maintenant, encore une fois, ça marche. Maintenant, créons les icônes à l'intérieur de ce conteneur. Ici, dans cet enfant. Donnez-lui simplement une ligne. Rangée. Tu as des enfants. Et dans cette rangée, non ? Le principal existe et traverse l'axe au centre, comme ceci. Et puis nous avons besoin que Dieu puisse dire que nous allons simplement le faire. Je peux voir une liste d' icônes, de données, de navigation, d'icônes. Pire encore, je laisserai les icônes Font Awesome, ces jours calendaires solides, puis l'icône Font Awesome, vérifier. Et enfin, l' icône Font Awesome point solid user. Voici donc les trois icônes que nous allons utiliser. Ici, les enfants, juste titre, lui donnent une boucle. Car int I est égal à zéro. I est inférieur à la longueur des points des icônes de navigation I et plus. Utilisez ensuite cet opérateur de propagation. Et puis nous utiliserons l' enfant élargi qui sera au centre. Et puis l'icône F donne index des icônes de navigation indiquant que ces icônes, une par une, seront affichées dans une région étendue. Alors maintenant, voyons à quoi ça ressemble. Si je vais voir, nous en avons trois, je crois, qui ont l'air décents. Maintenant, évidemment, rien ne se passe si je clique dessus. Nous devons travailler là-dessus. Maintenant, en dessous des icônes, disons simplement que int l'index actuel est égal à un. Et chez ces enfants, cela s'est élargi. Ensuite, ce centre se trouve dans GestureDetector. Dans l'onglet. Nous allons simplement écrire set state. L'indice actuel est égal à I, modifiez l'indice. Et puis ici, nous allons changer cette couleur en fonction de l'indice. Nous allons donc évaluer la couleur. Si, si I est égal à l'indice actuel, alors les couleurs que l' accent rouge colore en foncé, noir, 54. Taille similaire. Si I est égal à l'indice actuel, alors faites-en 30 ou 26. Voyons si cela fonctionne ou non. Si je clique ici, je vois la taille et la couleur de l'icône, les deux changent. Maintenant, vous pouvez voir que nous avons trois écrans. Créons donc ces trois écrans. À l'intérieur des écrans, créez un calendrier, un écran, point, puis une présence, un point vert. Et enfin, nous avons le fichier Green Dot. À l'intérieur de tout, créons simplement un écran de base. C'est un matériau important qui crée ensuite le prêteur. Écran. Le retour est un échafaudage. Corps, centre, enfant. Le prochain calendrier. Copiez tout. Accédez à l'écran de présence en vous basant sur leur nom pour ensuite danser. Feu vert aujourd'hui. Assiduité. Et de même, allez à l'écran de profil, collez tout. Ils ont changé leur nom en écran de profil et profil d'idée. Ce n'est qu'un écran factice pour le moment. Enfin, ajoutez ces écrans dans le corps de l' écran d'accueil afin que nous puissions y accéder à l'aide de la barre de navigation inférieure. Alors allez à l'écran d'accueil ici. Finissez ici, n'est-ce pas ? Indexé. Ce pieu là-dedans. Ensuite, dans l' index se trouvera l'index actuel. Et les enfants occuperont toutes les pages. Ce sera constant. Écrivons d'abord les prêteurs en vert, puis en vert, puis cet écran de profil. C'est ça. Sauvegardez tout. Jetez-y un coup d'œil. Voir la participation d'aujourd'hui. Si je clique sur calendrier. Et si c'est le cas, si je clique sur le fichier de téléchargement et que depuis les index, il est 01, je lis, la première page s'affiche, est-ce que cette fréquentation est pour aujourd'hui ? Tout fonctionne donc jusqu'à présent. Dans la vidéo suivante, nous allons travailler là-dessus aujourd'hui, puis sur l'écran. Merci 14. Travailler sur l'interface utilisateur de la participation: Bonjour, bon retour. Commençons maintenant à travailler sur cette date, puis sur l'interface utilisateur. Donc, ici, dans le corps, commençons par un seul enfant ScrollView. Dans cet enfant, il y aura une colonne rigide. Ensuite, pour que les enfants et cet enfant fassent défiler la page, je vais donner quelques pistolets rembourrés et j'insiste pour que tous les 20. Maintenant, pour ces enfants, nous allons avoir un widget de texte qui se chevauche à l'intérieur du conteneur. Adaptez l'informatique à l'alignement. Points centrés, à gauche. Ensuite, margin, const, ajout de sets, pas seulement 32. Alors, enfant. Const. Texte en guise de bienvenue. Style. Textile. Dans le textile, donnez de la couleur. Couleurs, pas noir 54. Et la taille de police est de 30. OK, enregistre ça. Et puis, en dessous de ce conteneur, comme un autre conteneur qui se trouve ici, se trouve l'accueil et le nom de l'employé. C'est un alignement. Alignement, centre gauche. Puis l'enfant a jeté un coup d'œil, un texte. Je m'appelle Louis. C'est juste un employé qui s'appelle Dummy Light. Nous allons maintenant montrer plus tard le style du texte et lui donner une taille de police de 25. Maintenant, enregistrez-le. Allons-y et vérifions-les. Vous voyez, nous avons le nom de bienvenue et le nom de l'employé ici. Alors, poursuivons. En dessous de ce conteneur. Je vais avoir un autre contenant. Copiez celui-ci, collez-le. Ici. Il y aura de la marge. En tant que const. L'ajout de sets n'en contient que 32. Et ici, les textes dureront deux jours. C'est le cas. Et la taille de la police fera l'affaire. Et puis en dessous de ce conteneur. Et ce contenant, donnez-lui une marge. Const. Ajouter des ensembles qui ne contiennent que 12. Mais j'ai 32 ans. J'en écris 150. Déclaration. Décoration de la boîte Const. Les couleurs des LED sont le blanc à points, l'ombre à cases. Nous avons la boîte à ombres ici. Eh bien, il y aura 26 couleurs. Le rayon de flou est alors un décalage, valeur du décalage étant égale à deux. Et en dessous, c'est en dessous de cette ombre. Nous avons ce rayon frontalier. Rayon de bordure, les points du rayon sont plus froids. Maintenant, disons, voyons à quoi cela ressemble et voyons le statut actuel de l'État et cela semble décent. Maintenant. Dans la vidéo suivante, nous travaillerons sur l'interface utilisateur laissée de côté. 15. Implémenter la diapositive pour vérifier: Bonjour, Continuons à travailler. Nous avions donc ici ce conteneur. Dans cette grille de conteneurs, ce widget de ligne enfant. Il y aura des enfants. Enfants, ici, il écrira l'alignement de l'axe principal, le centre, l'alignement, les points. Et puis, à l'intérieur de cela, des enfants sont morts et sont devenus rigides. J'espère que vous connaissez tous ces widgets, car je ne fais que créer l'interface utilisateur, rien d'autre. X collé. Alors ici, ce sera une vision en colonne. Encore une fois, dans cette colonne, nous avons l' alignement et la croix de l'axe principal. Il suffit de le copier et de le coller. Et puis il y a ces enfants. Maintenant, voici. C'est exact. Il faut un widget. Ce texte sera enregistré. Donnez-lui du style. Style de texte. La taille de police sera 20, la couleur sera noire, 54. Ensuite, en dessous de cette taille de texte, la boîte. Attends un jour. Séparateur pour enfants, juste pour donner un peu d'espace. Et puis un autre texto. Maintenant, le timing est juste codé en dur 930. Puis périmé. Style de deck, police, taille 25. Tu peux le voir. C'est une rangée intérieure. Nous avons ce widget étendu. Maintenant. Copiez ce document rigide développé. Et dans cette ligne, collez-le à nouveau comme ceci. Et voici ce sera le paiement. Et la texture sera vide comme ça. Et enregistrez-le. Allons-y et vérifions-le. Tu vois, ça a l'air décent, je crois. Le statut d'aujourd'hui. Et comme ça. Et en dessous de cela , l'État d'aujourd'hui le fait. Vous pouvez en donner un peu plus juste pour donner un peu d'espace ici. C'est ça. Encore une fois entre deux heures. Maintenant, pour l'enregistrement, je vais utiliser un package. Alors écrivez plus tard. Bob, ajoute une diapositive pour agir. Nous utiliserons ce package de diapositives pour agir afin de mettre en œuvre des fonctionnalités, d'enregistrement, de départ et d'utilisation. Cela aura l'air bien plutôt qu'un simple bouton. Le bouton surélevé est enfoncé pour procéder à l'enregistrement. Ça aura l'air bien. Je suppose. Il se peut que nous devions nous arrêter et repartir. Voyons ce qui va se passer. Mais si je vais sur le point YAML du pub juste pour vérifier, voir, nous avons le widget ici, désolé pour cet emballage. Maintenant, travaillons là-dessus. Passez à l'écran, puis à l'écran. Je vais fermer toutes les pages. Ici. Tout en haut. Nous devons créer une clé pour la diapositive. Clé globale rigide et solide. L'état q0 de l'action de la diapositive est égal à la clé globale. État d'action de la lumière. Cette coque est juste requise pour que le widget fonctionne. Maintenant, ci-dessous, dans cette colonne, nous devons écrire. C'est-à-dire que nous avons ce widget de colonne ici, descendez. Ici. Nous devons donner à un autre conteneur son alignement. Alignement au centre de l'enfant gauche. Les 15 prochaines. Avril 2023. Textile. Je suis juste en train de coder ces informations en dur maintenant. Et de même, copiez-le et collez-le à nouveau. Ici, le x sera l'heure. Je vais donc simplement écrire à Duan De zéro, zéro et un PM. Et amusez-vous, la taille sera D. La couleur sera le noir à points. Cinquième défaut. Il suffit de sauvegarder. Et voyez. Cela montre simplement la dernière date. C'est ça. Et ce sera cette heure-là, l'heure actuelle. Il est maintenant temps de créer le bouton coulissant. Dans cette colonne. Il suffit de créer un autre conteneur. Marge. Const, ajoutez des ensembles de seulement 25. Alors l'enfant sera un bâtisseur rigide. Comme ça. Ici, ce sera le contexte. Ensuite, retournez simplement l'action de la diapositive comme ceci. Et maintenant, le texte sera effacé. Pour partir. Le textile sera alors un textile. Couleur. Couches, foncé, noir, 54. La taille des obligations sera de 18. Puis en dessous de ce style. Le cercle extérieur, la couleur extérieure seront des couleurs. Cette couleur blanche sera parsemée de couleurs sur l'accent rouge. La clé sera la clé. Enfin, lors de la soumission. Comme ça. Ici, juste comme il faut. Le Garden State a été réinitialisé. Cela fait donc de la lumière, qui revient à sa position initiale. Alors regardez, nous avons ce slider. Il revient à sa position initiale parce que nous sommes en train de le réinitialiser. Mais ça a l'air tellement beau. En conséquence, vous pouvez simplement indiquer la taille de la marge de rembourrage si vous pensez qu'il reste de l'espace ici. Vous pouvez donc faire ces choses plus tard car vous voudrez peut-être montrer d'autres informations, une sorte de publicité ici. C'est à vous de décider. Pour moi, cette fonctionnalité devrait fonctionner. C'est ça. C'est ça. Pour cette vidéo. Nous continuerons à travailler et à obtenir des données réelles en cas d'échec dans les prochaines vidéos. Merci. 16. Fonction obtenir les données utilisateur: Bonjour, bon retour. Il est maintenant temps de créer une fonction qui récupérera les données utilisateur à partir du tableau des employés affiché, afin de pouvoir afficher celles qui se trouvent ici à l'écran. Accédez au fichier à points des enquêtes de base de données. Tout en haut. abord, créez une variable pour le modèle utilisateur, qui peut être nulle. Modèle utilisateur. Créez ensuite une fonction. S'il s'agit d'une fonction future qui renverra un modèle utilisateur, nous la corrigerons. Cela ne le convertit pas. Ensuite, je reçois les données des utilisateurs. La requête indique que les données utilisateur sont équivalentes à attendre. Du rhum brun Super Way. C'est-à-dire quelle table ? La table contient des constantes et n'utilise pas de table. Et Query Point Select. est-à-dire qu'il sélectionnera tout, mais il est évident que nous ne devons sélectionner que cet employé. Nous utiliserons donc de la même manière la colonne dont nous disposons pour vérifier la colonne ID et la valeur à vérifier. Nous devons vérifier les autoroutes de cet art. L'identifiant utilisateur actuel. C'est-à-dire que nous savons qu'il ne peut pas être nul, j'ai donné cette exclamation. Cette requête va accéder à la table des employés et obtenir les données qui sont égales à cet identifiant. Cela signifie qu'il va vérifier cet identifiant, cet identifiant de colonne. C'est très simple. Alors. Et je sais que les données seront uniques et que Lisa écrira simplement une seule, car il ne peut pas y avoir plus d'un employeur avec le même identifiant. Ensuite, j'écrirai que le modèle utilisateur est égal au modèle utilisateur de Jason. Et je vais envoyer ces données utilisateur ici. Et je vais également renvoyer le modèle utilisateur. Et ce n'est pas nul. J'espère donc que vous avez compris cette ligne de code. Nous sommes donc en train d'obtenir les données. Nous transformons les données en un modèle utilisateur et les stockons dans ce modèle utilisateur, une variable que nous avons déclarée en haut. Maintenant, nous allons afficher ce nom d'utilisateur ou cet identifiant au lieu de l' espace réservé qui se trouve à l'intérieur de cet écran, puis de cet écran. Nous avons donc ici nom d'un employé du conteneur lequel je vais créer un widget destiné aux consommateurs. C'est-à-dire que cela vient du fournisseur. N'oubliez pas qu'il écoutera quel fournisseur, base de données, service et constructeur. Nous avons le contexte, l' instance de classe de service et l'enfant. Renvoyez ensuite votre fabricant de chaises. Et maintenant, quel est le futur ? L'avenir, c'est les enquêtes DV, l' obtention de données sur les utilisateurs. Il enverra donc les données utilisateur ici. Dans le Builder, nous obtenons le contexte et donc un instantané. Maintenant, nous savons comment utiliser un futur builder. d'autres termes, si le snapshot contient des données, faites autre chose. Retour, const, taille, boîte, poids, 60, enfant, indicateur de progression linéaire. Et quelles que soient les données dont dispose l'utilisateur. Ensuite, nous retournerons ce conteneur qui est le conteneur du nom de l'employé. Peut-être que ça ira dans le conteneur contenant le nom de l' employé. Dans ce texte. Nous allons écrire ici un instantané. autres termes, s'il possède le modèle utilisateur, l'utilisateur équivaut à un instantané de cet ensemble de données, car nous savons que les données qui arrivent sont un type de modèle utilisateur. Et maintenant, dans ce texte, je vais écrire si le nom du point utilisateur n'est pas égal à vide, puis écrire le nom du point utilisateur. Attends, voyons voir. J'espère que tout va bien. Comme l'identifiant, comme celui-ci, l'identifiant de l'utilisateur et de l'employé. Mais maintenant, voyons voir. D'accord, cela ne peut pas être constant. C'est ça Et que ce soit constant. Maintenant, sauvegardez tout. J'espère que vous l'avez compris en utilisant le consommateur et en accédant au service, puis en appelant la future fonction. Et il suffit de vérifier que l'utilisateur a mis à jour son nom ou non. Si ce n'est pas le cas, montrez l' identifiant de l'employé avec son hashtag. Allons voir. C'est mon identifiant d'employé. Et comme mon nom n'y figure pas pour le moment, on nous montrera la carte d'employé. Ceci est maintenant fait pour formater les données et tout le reste. Je vais utiliser un package. Donc, une simple idée. Bob, ajoutez le package IN D. Intel. J'utiliserai ce package pour le formatage des dates. Je vais aller au point YAML du pub et vérifier. Oui, nous avons le package. Maintenant. Je veux afficher la dernière date ici. Alors allez vous enregistrer, partir. D'accord. Ici. Dans ce texte, nous devons écrire le code. Format de date, d'accord ? Alors oui, d'accord, le format, que je veux est un petit VD majuscule M, puis un petit y 0 fois autant de fois. Cela automatise le temps qui est maintenant comme ça. Et de même, copiez cette ligne et collez-la ici. Et ici. Le format sera exprimé en heures, minutes, secondes, comme ça, d'accord ? Mais il est évident que les secondes vont continuer à changer. C'est pourquoi nous allons intégrer cela dans un générateur de flux. Et ici, le stream sera un Stream point périodique, constant, durée, secondes, un par seconde, il suffit de le rafraîchir. Ainsi, les secondes correspondant à la valeur continuent d'être mises à jour. Faites-en sorte que ce soit constant, d'accord. Rendez-le constant. Allons y jeter un œil. Et voyons voir. Je ne sais pas Stream Dot, instantané périodique. Redisons n'importe quoi et signons. Puisque j'ai également utilisé un autre package. Vérifions le code, indice non autorisé. C'était important. Cela ne devrait pas être le cas, je ne devrais pas avoir cette erreur. Jet a expiré, non autorisé. Voyons voir. J'ai la preuve que cela fonctionnait tout à l'heure, qu' il était là en ce moment, qu'il est là. Je trouve ça drôle. Accédez à cet écran d'accueil et déconnectez-vous. Maintenant. Voyons ce qui est daté. D'accord. Le jeton expiré est expiré. Voyons voir. Je ne le pense pas. J' ai commis n'importe quelle erreur. Faisons le point. Vérifiez et voyez. OK, et maintenant tout va bien. Je ne sais pas qui était l'éditeur tout à l'heure, mais je me déconnecte et je me connecte. Et comme vous pouvez le constater, les pièces de 10 cents sont disponibles à la caisse ? caisse ? Check-in. Nous avons tout ce qu'il faut. C'est ça C'est tout pour cette vidéo. Je pense que nous avons fait beaucoup de choses ici. Au cours de la prochaine session. 17. Table de participation et cours de service: Bonjour, bon retour. Comme vous pouvez le constater, les dates et les données utilisateur fonctionnent, mais nous devons maintenant travailler sur le marché et sur des fonctionnalités denses. Donc pour cela, tout d'abord, créons une nouvelle table. À l'intérieur, supervisez-le et nommez-le. Vous pouvez l'appeler assiduité. Présence, désactivation, sécurité au niveau des lignes pour le moment, et activation en temps réel, car nous afficherons cet historique plus tard. Maintenant. La première colonne sera l'identifiant de l'employé, clé étrangère, une clé, deux, les employés. Et l'idée ici est que l' identifiant d'employé RTD Not Done de ce client, car il ne s'agit pas d'une clé primaire. Il s'agit de la clé primaire. Les clés étrangères peuvent ne pas être étiquetées. Attribué à une clé primaire. Donnez-lui ensuite une date ou un type de texte. Alors enregistrez-vous. Il lira le type de texte. Alors partez. Ce sera un jour, un jour. Bonjour. Kay. Alors sauvegardez tout, je suis juste en train de vérifier cela. Oui, les identifiants des employés, leur date est là. Ouaip. Enregistrer. C'est un ajout. OK, c'est fait. Maintenant, voici. Accédez aux modèles et créons un modèle pour le moment, puis le fichier, puis le modèle point, point, disons classe. Et puis plus intelligent de zéro. ID de chaîne. Acheter, être un rendez-vous. À l'heure actuelle. J'ai joué dans la dernière corde. Cela peut maintenant être de niveau. Allez-y bien jusqu'à ce qu'ils meurent. Créé à, d'accord. Créons le constructeur qui acceptera que cette valeur soit acquise. Ce point est obligatoire, ce point doit être daté. Il n'y a pas d'enregistrement. Mais dans le cas du paiement, nous n'utiliserons pas obligatoire, c'est ce paiement et ensuite obligatoire, ce point l'a créé. Passons maintenant aux trois. Et puis Rahm, de plus en plus intelligent, point. Jason enverra une carte des données dynamiques de Jane. Et c'est fait. Et puis plus intelligemment. Maintenant, ici, passez également à la caisse. Données relatives à l'identifiant de l'employé. Alors. De même, le nom de la colonne est Jack in. Copiez et collez. Partez. Et cela sera créé et horodaté. Nous devons donc analyser la date et l'heure qui barres, car les superviseurs ne nous donnent pas de date et d'heure au format. Nous allons donc simplement modifier le format ici. Maintenant. Pour travailler avec tout cela, créons un nouveau service. Accédez aux services créés, créez une limite de fichiers. Puis service point point. Créons ce fichier. Présence, enquêtes, vaste, note de modification de l'acheteur. Ensuite, comme vous l'avez dit, créez une classe de base spa et supervisez le client point d'instance de base Isabel dos. Ensuite, puis modélisez, faites-en un sans étiquette pour le moment. Alors je vais le recevoir aujourd'hui. Ils déchirent la date d'échéance en bas à et à cette heure. Pas maintenant. Ensuite, nous avons le booléen. La valeur booléenne est présente dans ce service : copier-coller. Et je me souviens que nous n' utilisons pas cette valeur booléenne ici. Donc, si vous le souhaitez, vous pouvez simplement le supprimer plus tard. Maintenant, ce nouveau fournisseur va au fichier point point principal. Maintenant, plusieurs fournisseurs ont mentionné ce nom, c' est-à-dire le fichier de service de présence. Et également dans le fichier de constantes point point, créez une nouvelle constante statique. Alors ils le feront, ils le feront alors de manière dense. Alors oui, c'est ça. C'est tout pour cette vidéo. Dans la vidéo suivante, nous travaillerons sur les fonctions permettant d'obtenir cela, puis sur le statut et le marché. Et puis merci. 18. Fonction pour marquer la présence: Bonjour, bon retour. Au cours de cette session, nous allons compléter l'écran de présence et créer toutes ces fonctionnalités. Alors allons-y et créons une fonction pour obtenir le statut. Les enquêtes de fréquentation incontournables ici. Et maintenant. Créons la fonction future et passons à l'assiduité. Tout d'abord, nous vérifierons si l'employé a tagué en partie aujourd'hui ou non. Si c'est le cas, nous stockerons ces données de manière plus intelligente au sein de notre présence. C'est-à-dire, ce qui n'est pas libéral. Allumons par une autre liste. Le résultat est que ça va faire l'affaire. Donc, le point de Bobby à partir duquel ils étaient des constantes point, puis stable, point, select, point égal. Nous devons donc vérifier l'identité de l'employé. L'identifiant de l'employé est égal à la valeur. Superviser point, nom d'utilisateur actuel. Comme ça. D'accord ? Ensuite, nous vérifierons si le résultat n'est pas vide, c' est-à-dire que nous avons au moins quelques données de présence. Le modèle de présence est alors égal au modèle de présence de Jason. Résultat, point en premier. Et puis, à la fin, nous informerons les auditeurs des données relatives à cette date précise. Et puis, j'ai oublié. Ici, nous devons également vérifier ces données, car elles sont à jour et terminent. La date sera égale à aujourd'hui. C'est important, évidemment, parce qu' il y aura beaucoup de participants dans cette chronique, mais cette date et cet employé en particulier ne seront qu'un. C'est pourquoi j'ai d'abord utilisé Result. C'est le point fort et pour obtenir de la participation aujourd'hui, je vais simplement vous montrer également, ce dont ils parlent. Celui-ci a le statut d'aujourd'hui. D'accord. Passons maintenant à la fonction la plus importante, le poinçonnage pour marquer la présence. Créons donc cela également. Écrivons une future marque. Baisse de fréquentation. Nous avons besoin des contextes Bell. Maintenant, nous allons d'abord vérifier si l'employé s' est enregistré pour ce jour-là ou non. Si ce n'est pas le cas, nous insérerons de nouvelles données pour cette journée. Et si c'est le cas, nous mettrons à jour ces données avec cette heure de paiement uniquement parce que l'utilisateur s'est déjà enregistré. Écrivons donc si vérification du modèle de présence est égale à zéro, comme ceci, nous ajouterons un poids. Donc, le point de Bobby provient des constantes, le point de la table de présence est inséré. D'accord ? Maintenant, évidemment, nous insérons les données. Ici. L'identification des employés sera un super moyen. Od point ID utilisateur actuel. Ensuite, ils seront dus. Vérifiez ensuite que l'enregistrement se fera au format de date, d'heures et de minutes. Point Parlement, date et heure, point maintenant. D'accord ? Ceci est donc exécuté si l' utilisateur ne s'est pas enregistré, et supposons que l'utilisateur se soit enregistré, alors nous le ferons tout de suite. Supervisez les constantes de ce tableau de fréquentation. Mise à jour Dot, d'accord ? Nous mettrons à jour la valeur, mais lorsque ce point est égal à un point, l'identifiant de l'employé est égal pour superviser cet art. Et là, évidemment, nous ne voulons pas d'Alice, mais nous devons lire autre chose. Si le paiement par le modèle de présence est égal à zéro, c' est-à-dire que la vérification existe, mais que le paiement n'est pas une œuvre d'art. Mettez le nom d'utilisateur actuel au point. Et encore une fois, nous vérifierons que le point est égal à cette date précise uniquement. Vous devez donc vous assurer que nous ne mettons à jour que cette date. OK, c'est très important. Accédez maintenant à la section de mise à jour qui se trouve ici. Ici, nous ne mettrons à jour que ce processus de paiement. Découvre comme ça. Et de même, copiez cette ligne et collez-la ici. D'accord ? Et maintenant, nous avons le if, else-if, puis enfin S, c'est-à-dire que l'enregistrement n'est pas non plus nul. Le paiement n'est pas non plus nul. Ensuite, nous allons montrer un snack-bar utils dot show. Et le message sera le vous êtes déjà parti aujourd'hui. D'accord. Ensuite, à la toute fin, nous appellerons la présence de Get Today. est pour qu'il obtienne les dernières données et mette à jour l'interface utilisateur car les auditeurs de notification sont ici. Il mettra donc à jour les dernières données. Avec ce modèle de présence, C, Comme vous pouvez le voir, nous le mettons à jour puis un autre modèle ici. D'accord ? Je sais qu'il y a beaucoup de code, mais c'est très simple. Si vous avez un quelconque type d'application, vous savez que nous ne faisons que créer, mettre à jour et supprimer un ensemble de données. La fonction est maintenant prête. Il est maintenant temps d' apporter des modifications à l'interface utilisateur. Accédez donc au point de l'écran de présence. Maintenant, la première chose que nous allons faire est de passer à l'état d'initialisation appelé get to it , puis de le replacer dans un contexte plus large. Nous devons écrire le service de présence, point, être à jour et dense ici. Écouter sera faux. Puisque je veux juste le faire de là au départ. Alors ce que je veux est là, je le rapporte par zéro. Ensuite, le fournisseur de services met des points sur les contextes, il en va de même pour les contextes. Et maintenant, nous avons cela , puis le fournisseur de services ici. Je n'appelle pas cette fonction ici car comme elle sera appelée plusieurs fois pour cela, sans raison, cette présence sera également appelée. C'est pourquoi je ne l'ai appelé qu' à l'état init pour la première fois. Passons ensuite à cet enregistrement pour enfants. D'accord. Maintenant, voici ce texte d'enregistrement, nous devons le modifier et simplement rendre ces choses constantes, parce que ces choses seront constantes. Et Li, ces textes vont changer. Il s'agira donc d'enquêtes de présence, modèle de présence, d'une vérification. S'il est nul, écrivez l'heure MD ou bien écrivez cette heure d'enregistrement. Donc, cette sortie simplement en place, ceci. S'il est nul, affichez-le. D'accord. De même, copiez ce code. Accédez au texte de paiement ici, ce sera Checkout, juste à ce moment-là. S'il est nul, utilisez simplement l' espace réservé et rendez-le constant. Il y a aussi des choses qui seront constantes. Je sais qu'il y a beaucoup de const. D'accord ? donc chose faite. Je suis juste en train de vérifier que tout est terminé et qu'il n'a rien laissé. D'accord ? Nous devons maintenant exécuter le marché alors dense sur la baisse. C'est à ce moment-là qu'ils utilisent cette diapositive pour s'enregistrer et partir. Alors voilà, la diapositive revient, oui, celle-ci. Tout d'abord, nous devons produire ces textes de manière conditionnelle. Nous y reviendrons donc, des enquêtes de fréquentation. Modèle de présence. Si l'enregistrement est égal à zéro, n'est-ce pas ? Passez à l'enregistrement. Ici, faites glisser le curseur droit vers l'enregistrement ou légèrement vers le départ. C'est ça. Ensuite, nous avons le textile à soumettre, en faisons un évier et appelons directement des enquêtes de fréquentation sur le marché ponctuel plutôt qu'un contexte dense. Ensuite, une fois cette opération terminée, nous définirons cette touche afin que l'utilisateur puisse à nouveau utiliser le curseur. Nous avons fait tout ce qu'il fallait. C'est le moment, nous sauvegardons et testons notre application. Voyons s'il y a une erreur ou non. Oh, d'accord. Je vais y assister et nous allons simplement nous rafraîchir. Et voyons voir. Il n' y a aucune donnée ici. Maintenant. Si je m'enregistre, regarde l'heure d'enregistrement. Y a-t-il 18, 39. Évidemment, cette fois, c'est dans l'émulateur. C'est pourquoi vous pensez peut-être : d' accord, ici l' heure est différente, ici l'heure est différente, mais au moins l'heure de l'appareil mobile est enregistrée. Alors allons-y et vérifions. Voir. Nous avons créé un enregistrement des dettes lors de l' identification des employés , le départ est nul. Cela signifie donc que l'enregistrement fonctionne parfaitement et que nous allons juste attendre . C'est-à-dire que je vais partir et vous faire savoir si cela fonctionne ou non. C'est bon pour les goûts. Allons-y. Le paiement y est également effectué. Cela fonctionne. Maintenant, si je vais voir la valeur de paiement est mise à jour uniquement dans ce tableau. Maintenant. Supposons que l'utilisateur essaie à nouveau de procéder au paiement. Ensuite, ce sera affiché, vous avez déjà quitté l'établissement aujourd'hui. Cela signifie que tu dois revenir demain. Enfin, l'écran de présence fonctionne parfaitement. Toutes les fonctionnalités fonctionnent parfaitement et il n' y a aucune erreur dans le code. Dans la vidéo suivante, nous travaillerons sur l'historique des présences afin que l'utilisateur puisse voir la fréquentation de son bus et d'enregistrement et de départ . 19. Fonction pour obtenir l'historique de la présence: Bonjour. Bon retour. Maintenant, c'est l'heure. Nous travaillons sur l'historique des présences. C'est l'écran de notre calendrier. C'est pour ça. Tout d'abord, nous devons ajouter un nouveau package. Ouvrez donc un terminal et j'ajoute mon oreille pour que l'utilisateur puisse modifier ou sélectionner l'année et le mois pour lesquels il souhaite obtenir la présence. C'est ça Si je vais dans le fichier YAML Pub spec point, vous pouvez voir ici que j'ai le mois simple ici, plus grand. D'accord ? Maintenant, nous allons écrire fonction def pour obtenir l'historique des présences. Alors allez-y, puis servez point point ici. Tout en haut. Je vais créer une variable qui contiendra une montagne de données recherchées. Alors là, je me demande juste où écrire. Écrivons-le ici. Souche. Le nombre de participants est de trois. Le mois est égal au format de date apical m, M, m, puis au format de petits points y, y, y, y. L'heure. Maintenant, ok. Ensuite, j'y arriverai. Je vais le laisser y arriver, obtenir de la participation, le Mois de l'histoire. Et je vais envoyer une valeur ici. Et puis j'aurai un historique leur de leur présence. Mois. Nous valoriserons ensuite ici. Nous aimerons que le mois de fréquentation soit égal à la valeur et informerons les auditeurs. Donc, tout simplement, nous sommes juste C'est le mois où historique des présences est étroitement vérifié. Donc, au tout début, le mois ne sera que mort. Ensuite, si vous le souhaitez, vous pouvez le modifier. C'est pourquoi je l'utilise pour que , lorsqu'il passe à l'écran de présence, au moins pour ce mois-là, il obtienne déjà les données. Maintenant, nous allons créer une fonction pour renvoyer un futur en vérifiant cette colonne de date pour la recherche Montagnier. Alors allons-y. C'est vrai. Liste des présences futures de manière intelligente. Accédez à la fréquentation, à l'historique. Un lavabo. Et Diane, d'accord. Tout d'abord, supposons que la requête par données d'analyste soit égale à Await Superbus, constantes marron foncé. Puis stable. Sélectionnez un point, point égal à la colonne, identifiant d' employé, égal pour superviser cet art, identifiant utilisateur actuel. Ensuite, nous ferons quelque chose comme une recherche par points parce que nous avons la date dans une chaîne. Donc, ici aussi, nous enregistrons les données sous forme de chaînes, nous allons donc simplement les comparer. C'est-à-dire que la requête est composée de guillemets doubles, puis insérée dans ses codes uniques et dans le Mois de l'historique des présences. Comme ça. Et la configuration sera en anglais. En anglais, comme ça. Ordre créé en passant de l' ordre croissant à faux. Comme vous pouvez le constater, nous avons des finalistes. Les données sont égales à la moyenne de Superbus qui partir d'un démarrage constant à un point instable, sélectionne cet identifiant d'employé égal, qui doit être égal à l'identifiant utilisateur de l'art supervisé. Ensuite, recherche par texte par points. Nous allons vérifier la colonne de date et obtenir toutes les lignes, qui sont égales à ce mois. Nous lançons donc ce Mois de l'historique des présences. Et puis l'ordre doit être dans l'ordre décroissant. Après cela, nous retournerons une carte à points de données. Nous allons cartographier les données. Nous y assisterons. Ce sera le modèle de présence point Jason. Nous enverrons chaque présence. Enfin, nous allons convertir ces données en une chaîne, en une liste. Cela deviendra donc un modèle de liste de présence. Voici donc la fonction. C'est ça Pour cette vidéo. Nous travaillerons sur la partie interface utilisateur dans les prochaines vidéos. 20. Travailler sur l'interface utilisateur: Bonjour, bon retour. Commençons maintenant à travailler sur cet écran de calendrier. Ici, nous allons montrer l'historique de présence de l'employé pour un mois et une année donnés. La première chose à faire est donc d'obtenir la présence du fournisseur. Les enquêtes sont équivalentes à connaître le point de contexte de Vida. Et j'ai écrit que je devais le copier-coller dans le service de facturation et de présence. D'accord. Nous avons le fournisseur. Oui. Ils retourneront à la colonne Harlem plutôt que des enfants. Conteneur Le conteneur donne l'alignement à l'alignement. Au centre gauche. Ensuite, margin, const, ajoutez des ensembles qui ne font que de gauche de dop 60. En bas. Ensuite, l'enfant sera un texte constant. Ma présence. Style, textile, donnez à Duff une taille de police 25. D'accord. Ensuite, en dessous de ce conteneur, ligne, du domaine X se trouve l'alignement. Les points d'alignement s'espacent uniformément. Ici. Nous afficherons le mois en cours ainsi qu'un bouton pour sélectionner un mois. Écrivons donc que les enfants et les textes le seront. Ensuite, des enquêtes. La fréquentation, l'historique le style du mois seront constants. Decks, est mort. Eh bien en taille 25. Ensuite, nous aurons un bouton de plan. La prochaine, ce sera une semaine, un mois. Rends-le constant. D'accord. Nous avons fait de ce mois un mois. Sur site, faites-en un évier. Puis écris-en un autre à Pi. Sélectionnez. L'identifiant est égal au mois simple ici, car il s'agit du package point show Monday. Parce que le dialogue ici, nous avons ceci et nous devons écrire désactiver le futur est égal à vrai. Cela signifie que cela désactivera les années à venir. De toute évidence, l'utilisateur ne peut pas accéder aux années futures et obtenir son historique de fréquentation. Ensuite, nous écrirons String Big Month. C'est-à-dire que nous devons formater cette date dans notre propre format, qui est utilisé partout. Nous allons donc simplement dire M majuscule quatre fois petit vi quatre fois. Cela nous aidera à comparer les données disponibles. Nous avons des textes ou une chaîne. C'est pourquoi nous formulons la date sélectionnée. Voyons voir. Fais-le attendre sur cette simple montagne. Ensuite, modifiez simplement ces enquêtes auprès des locataires. Présence, le mois de service est le mois choisi. Maintenant, si vous y allez, ce sont les enquêtes de fréquentation, le Mois de l'histoire. C'est un setter. Tu vois ? Ainsi, lorsque nous définirons la valeur, cela changera la valeur de celle-ci. Ensuite, informez l'auditeur qui reconstruira à nouveau l'écran. C'est pourquoi nous retrouverons le mois dernier dans le texte. Donc, si je l'actualise, si je le rafraîchis et que je dis que nous avons une autre raison, pourquoi ce zéro est-il ici ? Mademoiselle réfléchit ? Je ne sais pas ce qu'il y a dans ton téléphone. J'espère qu'il n'y a pas d'additionneur. J'ai tout fait correctement. Et puis l'histoire de la danse, m, m, m. Et je pense que nous avons ajouté cette phrase supplémentaire. C'est pourquoi c'est la seule raison. C'est une erreur très stupide de devoir nous assurer que ces choses sont connectées. Alors maintenant, si je recommence, et j'espère que c'est en caractères, si je vais voir un braille, 2023, si je les choisis et en mars, ce sera le mois de mars. D'accord. Cela signifie qu' il fonctionne jusqu'ici. Créons maintenant le futur générateur pour obtenir les données appelant la fonction get dependence History. Passons en dessous de ça. Nous écrirons d' entrée de jeu que cette querelle a évidemment bouleversé cette querelle. C'est dans la colonne que nous devons écrire la liaison X. Ensuite, vous créez des graphiques. À l'avenir, il y aura ensuite des enquêtes qui permettront d'obtenir l'historique des présences. Ici, il facturera les contextes, le contexte comme la visualisation d' instantanés, d'instantanés. Nous allons maintenant ajouter si un instantané indique qu'ils n'ont rien fait. En retour, const. Indicateur de progression linéaire. Fond, couleur, couleurs à pois blancs. Et la roue chromatique, les couleurs, le gris, comme ça. Et ici, si l' instantané contient des données, là encore, nous vérifierons que la longueur des points de données est supérieure à zéro. C'est-à-dire s'il y a une histoire ou non. Si ce n'est pas le cas, nous renverrons texte enfant de Const Center. Et ici, dans les textes, nous n' écrirons aucune donnée disponible. Créez un style de texte, taille de police 25. C'est ça Maintenant, ce que nous allons faire c'est que si la longueur des points des données instantanées est supérieure à zéro, nous allons générer une sorte de widget, ce que nous ferons dans la vidéo suivante. Merci 21. Afficher les données d'historique: Bonjour, Continuons à travailler sur l'écran du calendrier. Maintenant, ici, si un instantané montre que la longueur des points de données est supérieure à zéro, nous renverrons un widget de création de points avec affichage de liste. Ici. Le nombre d'éléments sera calculé sous la forme de données instantanées, de la longueur des points. Objet. Vous trouverez ci-dessous. Ici. Il comportera des contextes et un index. Ensuite, nous aurons l'idée et nous serons plus intelligents puisque nous savons que papa meurt en utilisant un type de modèle de présence. Alors, puis, alors, les données constituent un bon instantané. Données. Index k. Retournez maintenant le conteneur. Margin, parti. Inserts de bord. Non seulement donnez-lui 12, à gauche, donnez-lui 20, à droite, donnez-lui 20. En bas. Donnez-lui dix. Puis la hauteur. 150. Puis déclaration. Const, décoration de la boîte, couleur, couleurs à points blancs, couleurs à points blancs. Ensuite, l'ombre du cadre aura les couleurs de la couleur de l'ombre à boîte, le noir. Quand ces six idées se sont brouillées, alors Offset two to k. Évidemment, n'est-ce pas ? Maintenant. Il suffit d'attendre. Nous avons le box shadow. Ensuite, cette décoration hors des sentiers battus, pas saoudienne, après la boîte. Mais ça, c'est vrai. Rayon de bordure, rayon de bordure, rayon de point, ce cercle de 20. Maintenant, donnez cet enfant au contenant. Et le contenant lui donne une rangée. matrices d'alignement principales existent, classe centrale des points d' alignement sera également centrée. Ensuite, nous aurons ces enfants. Alors, comme vous pouvez le voir ici, les enfants. Alors maintenant, travaillons là-dessus, les enfants. Les premiers enfants seront élargis. Marge du conteneur, const, ajout de sets. Au bout. Voyons quelle valeur nous allons donner. Je vérifierai le fonctionnement du régulateur, la décoration de la boîte. La couleur, les couleurs, l'accent rouge, rayon de la bordure, le point, le rayon, les points circulaires 20. OK. Donnez ensuite à ce récipient un centre chiral. Maintenant, nous allons respecter cette date, ce format de date, ici, n'est-ce pas ? E. Ensuite, remplacez cette ligne par celle-ci. Nous aurons les données, le dimanche, le lundi et la date. Format. point de date de présence a été créé car ce sera le même que la date. Il sera donc beaucoup plus facile de le changer. Ensuite, donnez-lui du style. Const. Textile. Sur la taille, il y aura une couleur fine. Point blanc. Poids de police, poids de police, gras. OK. Nous avons ceci et après cela une région élargie, accord, une autre région élargie. Nous avons une matrice de colonnes est l'alignement principal extracellulaire de mon centre de données, l'alignement transversal, la croix x est un élément qui centre que les enfants. Dans ce cas, les enfants peuvent s'enregistrer par SMS. Nous allons maintenant afficher l'heure d'arrivée et de départ. Le style lui a donné un certain style de texte. Police, taille, Duan De, couleur, noir. Ensuite, il suffit de donner, lui donner une taille, une boîte, un poids. L'enfant divise cela. C'est la même chose que le texte de l'écran Je n'ai pas fait alors. Ensuite, indiquez point, point, enregistrement. Stein, const, textile, taille de police, donnez-lui 25. OK. Nous avons la colonne ici. Nous l'avons élargi. Et puis copiez de la même manière cette Jacqueline en l'agrandissant et en la collant. Et nous avons des axes principaux, des axes transversaux. Ensuite, le texte sera payé. C'est bon. Nous avons alors le diviseur ici, n'est-ce pas ? Achetez dot toString. Et si c'est nul, alors écrivez ce suffixe comme ceci. Et une fois cela développé, donnez-lui simplement une boîte de taille située à l'intérieur de cette rangée. N'oubliez pas qu'en dehors de cette boîte agrandie, donnez-moi leur taille. Maintenant, lancez l'application. Et le droit se produit toujours s'il apparaît dans l' autorisation de mon système et tout. C'est parce que j'utilise un émulateur parce que j'ai testé l'ensemble de l'application un appareil réel et qu'elle fonctionnait parfaitement. Je pense donc que si vous l' essayez sur votre appareil, vous n'obtiendrez pas ce type d' autorisation et d'expiration. Et maintenant, passons à l'écran de démarrage. Déconnectez l'utilisateur. Maintenant, k i. Maintenant, ces erreurs, vous n'obtiendrez pas ce scénario d'erreur plus bas c'est parce que pour le moment, il s'agit d'un appareil virtuel et je suppose que l'heure est également différente de R. Donc, encore une fois, je vais me connecter. J'ai ce check-in et ce check-out. Et si je regarde l'écran, je vois que j'ai les données et si je choisis un mois et que je le donne en mars, alors aucune donnée n'est disponible. Si je choisis une langue en braille, nous aurons les dates d'arrivée et de départ. Et si vous consultez le calendrier, je ne pense pas. Vous avez besoin qu'il y ait un set vide. Vous n'avez pas besoin de celui-ci car je pense que l'espacement et tout semblent bons. C'est qu'à la toute fin, nous avons défini la taille de la boîte. C'est donc la raison pour laquelle nous avons cet espace ici. Parce que tout cela prend autant de place à cause de la version étendue. Mais je pense que ça a l'air décent. Alors c'est tout. Notre écran d'historique des présences fonctionne également parfaitement. Continuons donc dans ces prochaines vidéos. Merci. 22. Fonction pour obtenir la localisation des employés: Bonjour, bon retour. Dans cette vidéo, nous allons implémenter une fonctionnalité permettant d'obtenir la position actuelle de l'utilisateur. Ainsi, pendant l'enregistrement de notre processus de paiement, nous enregistrerons également la localisation de l'utilisateur afin que l'employeur puisse vérifier plus facilement si l'employé est au bureau ou non. Nous allons donc simplement déterminer l'emplacement. Je ne vais pas vérifier la distance. Mais évidemment, avec ces données, vous pouvez vérifier très facilement la distance entre le bureau et l'utilisateur. Maintenant, pour implémenter cette fonctionnalité, je vais utiliser ce package appelé location. Ici. C'est le package. Il suffit donc de le copier et de le coller dans le fichier YAML pub spec dot. Avec cet emplacement, nous obtiendrons la latitude et la longitude. Il suffit donc de l'arrêter et de redémarrer l'application. Parce que nous avons installé un nouveau package. Il vous suffit de commencer le débogage. Et comme je le disais, nous enregistrerons la latitude et la longitude de l'utilisateur. Plus tard, si vous le souhaitez, vous pouvez utiliser le nom du package is geocoding pour obtenir le nom de la rue, la ville, le pays et d'autres détails à partir des coordonnées de localisation fournies par ce package. C'est donc à vous de décider. Le nom du package est Joe. Attends, je vais juste te montrer aussi. Cette fois-ci, il s' agit de coder. Je crois que c'était quelque chose qui relevait du codage. Mais vous voyez, c'est le nom du géocodage. Ouaip. Vous pouvez l'utiliser vous-même si vous le souhaitez. Maintenant, à cet endroit, je vais utiliser ce code et je vais voir ce code que je vais utiliser. Maintenant, créons une nouvelle classe de service. Services d'informations. Fichier créatif. Localisation, service, point, tout simplement le bon service de localisation. Ce n'est pas le fournisseur. Et divisez-le. Je vais importer du matériel. Ensuite, je vais importer l'emplacement. C'est ça. Maintenant, créez une instance de l'emplacement. Alors, non ? Localisation, données. Données du journal. Créez ensuite une fonction qui renverra une carte de chaîne double, c' est-à-dire la latitude et la longitude. Et ça peut être nul, parfois. Initialisez et obtenez l'emplacement. Nous allons faire des choses à bord ici. Site, contextes, contextes pour afficher le snack-bar. Maintenant, le code ressemblera à des booléens. Les enquêtes permettent l'autorisation et le statut. Autorisation. Accordé. La première consiste à vérifier si localisation est activée ou non. Dans ce service d'appareil , cela équivaut à attendre la localisation. Services activés. Si le service n'est pas activé, nous associons que l' activation du service est égale à 08. Service de demande de points de localisation. Ensuite, si le service était activé, encore une fois, nous étions comme un snack-bar utils point show. prie. Activez la localisation, un service comme celui-ci. Et nous renverrons zéro ici. L'autre code ne sera pas exécuté. Ce sera donc le cas si le service ne leur est pas activé. D'accord ? Ensuite, nous vérifierons. Si le service est activé. Demandez ensuite l'autorisation de localisation à l'utilisateur. Cela signifie que l'utilisateur obtiendra une fenêtre contextuelle permettant à cette application d'accéder à la localisation. Donc, maintenant, nous avons une autorisation accordée, c'est comme attendre un lieu qui a une autorisation. De même, nous écrivons si l'autorisation accordée est égale à l'état de l'autorisation point refusé. Ajoutez à nouveau une autorisation égale à la position d' attente, demandez une autorisation. Et encore une fois, si l'autorisation accordée n'est pas égale aux autorisations , le bureau l'a été. Ensuite, utils point show snack-bar. Veuillez autoriser la localisation, l'excédent, renvoyer un résultat nul à partir d'ici. Et si ce n'est pas le cas, tout va bien. Une fois l'autorisation accordée, renvoyez les coordonnées. simple fait d'écrire les données du journal équivaut à attendre que GetLocation. Et rendez-le d'ici. Une carte de données. Laissons le mec être égal à l' élément de latitude du point des données du journal point des données latitude . Ici. Ce double peut également être nul. De même, la longitude est égale au log data dot edu. Vous vous demandez peut-être quel est ce code ? Donc, si vous consultez la documentation officielle, vous obtiendrez le code exact ici. Vous pouvez donc simplement lire ou copier ce que vous voulez. C'est à vous de décider. Nous n'écoutons pas les changements d' arrière-plan et c'est pourquoi nous ne procédons à aucun réglage. Il s'agit d'une autorisation et de tout accès au premier plan et en arrière-plan. Ce genre de choses. 23. Emplacement du magasin lors de l'enregistrement: Bien, maintenant que nous allons stocker ces données dans ce répertoire et les stabiliser, nous devons apporter quelques modifications. Passez donc à l'employé chargé des présences. Et dans cette présence, modifiez le tableau et ajoutez une colonne. Lieu d'enregistrement, qui sera sous forme de carte, c' est-à-dire Jason. Et de la même manière que le lieu de départ. Ce sera également au format JSON. Il suffit de le sauvegarder. présent, nous devons apporter des modifications au marché, puis à son fonctionnement. Donc, ici au Danemark, la fonction de présence n' autorise la présence que si cette autorisation de localisation est accordée. Donc, tout d'abord, map, nullable, get location est égal à await location, service, initialize et getLocation. D'accord ? Ensuite, j'écrirai si getLocation n'est pas égal à null, alors je n'exécuterai que. Ce sont des codes d'ici, copiez-collez ici. D'accord ? Et ici, évidemment, nous devons enregistrer cet emplacement. Donc, dans l'encart, nous allons vérifier l'emplacement avec un gros GetLocation. De même, lors du paiement, il sera indiqué que le lieu de paiement sera GetLocation. Il en sera de même pour le reste. Oui, n'oubliez pas que nous enregistrons simplement cet emplacement. Rien d'autre. Nous n'utiliserons pas cette localisation, mais au moins vous savez comment l'obtenir. La dernière chose à faire est de modifier leur modèle de présence. Hein ? Finale, carte. Lieu d'enregistrement. À l'heure actuelle. Emplacement de consultation de la carte. Ici. Ce sera ce point d'enregistrement, ce point de départ, donc ce ne sera pas obligatoire. Souvenez-vous également d'ici. Nous écrirons que le lieu d'enregistrement sera une donnée. Lieu d'enregistrement. Les données relatives au lieu de paiement seront considérées comme le lieu de départ. Alors c'est ça. Je vais supprimer ces données, les données de présence, car je souhaite que ce lieu d'enregistrement soit également enregistré. Nous allons tester l'application. Voir l'enregistrement, le départ n'y est pas. Donc, si je glisse, il me demandera l'emplacement de l'appareil, je l'accepterai. Voyons voir. J'espère qu'il n' y a pas d'adder car je sais que s'il s'agit d' un appareil physique, il n'y a pas d'erreur, mais je ne suis pas sûr de cet émulateur. Voyons voir. Il n'y a pas d'erreur quant au moment. Voici donc la présence, l'écran, le marché et l'objectif. Mais que se passe-t-il si l'emplacement est correct ? Les offres ne montrent pas le snack-bar. Impossible d'obtenir l'emplacement de la cour. Quelle couleur sera colorée en rouge ? Parce que, de toute évidence, Dieu est là et mets-y pour que l'état soit mis à jour. Mais voyons ce qui s'est passé. Si on vérifie. D'accord, comme vous pouvez le voir ici, cela ne fonctionne pas. Ce que je vais faire, c'est vous montrer cela plutôt que de courir dans un vrai appareil. Maintenant, j'ai connecté mon véritable appareil, et nous allons vérifier si cet emplacement fonctionne ou non. Donc, si c'est trop léger pour m'enregistrer, ouais. Je vais demander ma position et je l'ai donnée. Et voyez. Nous avons fait cet enregistrement et cette localisation est sur le point de réussir, je crois. Donc. Nous avons ici ce lieu d'enregistrement. Comme vous pouvez le constater, il fonctionne parfaitement dans un appareil réel. Auparavant, le seul problème était qu'il s'agissait d'un émulateur Android. C'est la seule raison, sinon cela fonctionne bien. Si je clique sur Checkout, encore une fois, le lieu et l'heure de paiement sont mis à jour. Voilà pour le lieu et l'histoire. Ces deux pages fonctionnent parfaitement. Dans la vidéo suivante, nous travaillerons sur cet écran de profil. Merci 24. Fonction pour obtenir tous les départements: Bonjour, bon retour. Nous allons maintenant commencer à travailler sur cet écran de profil qui permet d' accéder tous les départements et de mettre à jour le nom d'utilisateur. Donc, pour cela, créons d' abord un nouveau modèle pour le département. Hein ? Point, point, modèle de département, point, point, point. Il s'agit d'une nouvelle classe de modèles. La pièce signifiait modèle. Int final. Nous aurons l'identifiant, c' est-à-dire l'identifiant du département et la chaîne binaire. Nous avons déjà inséré quelques départements dans leur base de données. Modèle de département requis, ce point est requis, ce titre de point, puis créez une usine. Depart lorsqu'un modèle de Jason envoyait des données dynamiques sous forme de chaînes cartographiques. Puis ils se retournent. Modèle de département. L'identifiant sera une donnée, l'identifiant et le titre seront des données, et la clé sera un titre, puisqu'il s'agit d'un format cartographique. OK, le modèle est prêt. Maintenant. Passons aux services DV. Donc, puisque nous allons permettre à l'utilisateur de mettre à jour son nom et son département dans son écran de profil. Créons donc Panchen pour intégrer tous les départements à ces services DV. Alors voilà, c'est vrai. Tu as applaudi. Large. Obtenez des départements. Asynchrone. Maintenant, nous allons d'abord créer quelques variables d'état. Nous allons d'abord énumérer les départements. Modèle. La liste des départements est vide pour le moment. Et nous aurons un service d' employés entier, c'est ce qu'est le service des employés actuel. Cela sera également modifié si l'utilisateur sélectionne autre chose. Vous allez donc comprendre d'une certaine manière. Maintenant, en obtenant les données des utilisateurs, nous pouvons ajouter si le département des employés est égal à zéro, puis le donner à l'employé. S'il est nul, alors c'est vrai, le service des employés est égal au modèle utilisateur point. Le département du modèle utilisateur ne fait rien. Donc, ce que j'ai fait, c'est que tu dois le comprendre. est-à-dire que ce Chen amusant peut être appelé plusieurs fois, c' est-à-dire que chaque fois que nous l' appelons, informez les auditeurs la présence, écran de présence. Cette fonction l'appellera car elle y a un testament futur. Il réinitialisera donc la valeur Department, la partie quand la valeur. C'est pourquoi nous utilisons une condition laquelle une valeur est attribuée uniquement si un département est vide. C'est la première fois. J'espère que vous l'avez compris. À attribuer à Lee et à l'heure. C'est ça. Maintenant, dans l'intestin, tous les départements. Écrivons une liste de fonctions. Le résultat est un poids. Superbus, bal de fin d'année, tableau des départements à démarrage constant, cette fois , sélection par points, nous sélectionnerons tous les départements. Ensuite, nous ajouterons que tous les départements sont égaux au résultat. Carte à points. Ici, nous aurons un département. Alors, non ? Département. Ici, nous devons écrire un modèle de département à partir de JSON et nous enverrons le département. Enfin, listez tout , puis demandez aux auditeurs de mettre à jour la valeur. C'est ça. Parce qu'ici, nous utilisons l' écouteur qui entrera dans l'interface utilisateur. Nous allons connecter l' interface utilisateur à cette variable. C'est nous qui écouterons ces données variables. C'est pourquoi. Alors c'est tout. Nous avons créé une fonction pour voir tous les départements dans les prochaines vidéos. Nous créerons également une fonction pour mettre à jour le profil. En juin. 25. Fonction pour mettre à jour les données de profil: Bonjour, bon retour. Dans cette vidéo, nous allons écrire la fonction def pour mettre à jour les données de profil dans le service de base de données, n'est-ce pas ? Futur. Mettre à jour le profil. Nous aurons besoin du nom Bill Context. Et nous allons simplement attendre. Ça devrait être à portée de main. Ce sont de super moyens pour Rahm, départ constant, point de table des employés, point de table des employés mettre à jour le nom. Nous mettrons à jour leur nom. Et département. Nous mettrons à jour la valeur du département des employés, qui est la variable d'état suivante. C'est ici. Depuis le tout début. Nous allons l'initialiser avec la valeur précédente. Et ici, nous devons utiliser le point égal, car nous devons modifier en direct où l'identifiant est égal pour superviser ce point et l'identifiant utilisateur actuel. Une fois cela fait, nous utiliserons le snack-bar Dodge. Profil associé, mis à jour avec succès. Et nous allons donner de la couleur aux couleurs vert foncé. Et nous en informerons les auditeurs. Ainsi, le nom figurant dans le tableau de présence, qui est identifiant de bienvenue ou le nom de bienvenue, sera automatiquement mis à jour si nous utilisons la fonction Notifier les auditeurs ici. Passons à l'écran du profil. Ici. Nous devons commencer à y travailler. Tout d'abord, créons quelques variables. Débordant de contrôleur d'édition de texte. Le contrôleur de nom est égal au contrôleur d'édition de texte. Et puis la valeur int sélectionnée est égale à zéro. Voyons ce que nous allons faire. Cela sera-t-il nécessaire ou non ? Nous vérifierons cela plus tard. Dans les contextes qui ne le sont pas, le projet de loi créera d'abord le fournisseur de services de base de données, le contexte du fournisseur de services . Contexte. Et puis nous avons besoin d'un service de base de données. Ensuite, nous appellerons des enquêtes DV. Tous les départements. S'il est vide et n'a pas été initialisé, lancez les enquêtes DV pour vous assurer que tous les services ne font rien. Ce code signifie n'appelez le service Get All qu'une seule fois. Ensuite, nous nommerons le texte «  controller ». S'il est vide, utilisez named controller valeur du texte doit être le service dv, modèle utilisateur, le nom du point. Et si c'est également vide, rendez-le vide. C'est une chaîne vide. Cela signifie que si cette page est chargée pour la première fois, insérez les textes du contrôleur de noms dans le contrôleur de noms pour qu'ils soient identiques au nom point du modèle utilisateur. Et supposons que l'utilisateur n'ait pas mis à jour son nom, utilisez simplement la chaîne vide. Comme ça. Nous utilisons ces conditions en utilisant les conditions ci-dessous. Parce que la ceinture peut être appelée plusieurs fois lorsque vous utilisez des écouteurs de notification. C'est la seule raison. Maintenant, travaillons sur le corps. Dans le corps. Nous vérifierons si le modèle d'utilisateur du service est égal à zéro. Affichez ensuite un indicateur de progression. Parce qu'il est évident que si vous utilisez un modèle n'existe pas, alors comment pouvons-nous afficher les données. Commencez maintenant par le rembourrage rigide const, et commencez plutôt par notre Duan De. L'enfant sera alors une colonne ScrollView unique . Ensuite, l'élément principal existe, c' est-à-dire la cellule principale de sortie de Mendota, au centre. Alignement des axes transversaux, alignement des axes transversaux. C'est centré. Et puis nous avons ces enfants 0, k. Alors continuons à partir d'ici. Dans la vidéo suivante. Dans la vidéo suivante, nous aurons le TextField et une option pour sélectionner le département, ainsi qu'un bouton pour mettre à jour les détails de l'utilisateur. Merci. 26. Menu déroulant pour sélectionner le département: Bonjour, Continuons à travailler sur cet écran de profil. Donc, dans cette colonne, nous avons ces enfants. Et au sein de ces enfants, commençons par créer un contenant. Conteneur, donnez-lui une marge de manœuvre et insérez Lee. À cent cents mètres d'altitude. Décoration, déclaration de la boîte. Rayon de bordure, rayon de bordure. Les points sont plus cool. 20 couleurs parsèment l'accent rouge. Comme ça. Dans cet enfant. Rédigez simplement des subventions. Et troisième enfant, nous lui donnerons une icône. Donc ceci, c'est juste pour utiliser un look que cette personne a ajouté. C'est le look de la page. Si vous le souhaitez, vous pouvez implémenter le téléchargement d'images, etc. Ici. Il s'agit de la boîte et en dessous de cette boîte de la taille d'un contenant, d'une hauteur 15. Ensuite, le texte de l'identifiant de l'employé est égal à, nous appellerons le service de base de données. Les enquêtes portent sur le modèle utilisateur, et non sur l'identifiant de l'employé. Nous lui montrerons l' identifiant d'employé que nous avons créé. Ensuite, en dessous se trouve la taille d'une boîte d'IA d'aujourd'hui. Et puis fais-le TextField x contrôlera, contrôlera le nom. La collision const, la déclaration d'entrée, l'étiquette, le texte, le nom complet, le nom complet. Donnez une bordure, tracez une bordure de saisie. Maintenant, sauvegardez tout. Voyons à quoi ça ressemble. Vous voyez, nous avons le numéro d'identification de l'employé. Elle a l'air d'être descendante. Nous avons le TextField ici pour le nom complet. Maintenant, nous allons créer un menu déroulant pour permettre à l'employé de sélectionner son département. Maintenant, en dessous de ce champ de texte, donnez une zone de taille 15 et rédigez des enquêtes DV. Tous les départements ne sont pas vides. Ensuite, écrivez const, indicateur de progression linéaire ou bien la case Harris Size. Puisque je sais qu'il ne sera pas vide car j'ai déjà inséré les données dans la base de données. C'est pourquoi je vais montrer un indicateur de progression linéaire. Maintenant dans la boîte de taille. Donnez-lui une hauteur infinie à deux points qui correspond à l'ancienne taille disponible. Ensuite, l'enfant sera déposé. Champ de formulaire. D'accord ? Ici, tout d'abord, nous allons ajouter la déclaration, la const, la déclaration d'entrée, la bordure, la bordure d'entrée. Ensuite, la valeur sera l' employé du service DV, le département. S'il est nul, utilisez le service de base de données. Départements. Première valeur d'identification par point , c' est-à-dire si l' utilisateur sélectionne des ventes, quel est l'identifiant ? C'est-à-dire supposons zéro, c'est-à-dire la valeur que nous voulons, non les textes, c'est-à-dire une opération de vente. Je ne veux pas le texte, je veux l'identifiant de cette ligne. Ensuite, nous devons écrire des articles. Les éléments seront des enquêtes DV, carte à points de tous les départements. Sur la carte, nous aurons l'article modèle du département. Maintenant, cette fonction renverra un élément de menu déroulant comme celui-ci. K. Maintenant que ce code arrive, je sais que c'est très difficile. Mais ici, vous devez le faire figurer dans la liste pour que l'erreur disparaisse. Et dans la valeur et l'enfant sont supprimés, c'est fait. L'article a de la valeur. Ce sera item.name, ID. Mais que devons-nous montrer ? Nous utiliserons un champ de texte pour afficher l'élément, le point, le titre. Et le style sera constant. Style de texte. Taille de police 20, 0, k. Ici, il s'agit d'une instruction de retour. Maintenant, la dernière chose requise est d'avoir le k en leur sein. Le champ du bouton à points est en cours de modification. Donc, onchange nous donne la valeur sélectionnée. Ici. S'ils l'utilisent, changent la valeur, alors nous rédigerons des enquêtes DV. Service employé, remplacez-le par la valeur sélectionnée. C'est ça. Maintenant. Tu vois, nous avons les ventes, le marketing, tout. Si vous le souhaitez, vous pouvez un peu de rembourrage et tout dépend de vous. En dessous de cette taille. Enfin, nous aurons une certaine hauteur de boîte d' espacement pour D. Et ensuite, nous obtiendrons à nouveau cette taille de boîte. Ici, nous allons créer le bouton. La taille fonctionne avec 250. Enfant. Bouton surélevé. Il n'y a aucune presse. Et l'enfant sera constant. Suivant. Mise à jour, style de profil. Textile. On dit que lorsque D N est sur site, nous écrirons simplement contextes du profil de mise à jour du service dv sont là. Et ici nommé Controller Dot Text Trim. C'est ça. Maintenant, tout est fait. N'oubliez pas que nous n'envoyons l'identifiant du service, car si l'utilisateur le modifie , le service des employés sera automatiquement modifié. De plus, nous n'avons pas besoin de cette variable de valeur sélectionnée. Maintenant, si je regarde le tableau des employés, nous pouvons voir que ce département et ce nom sont vides. Allons vérifier. Le ministère sera désolé, le nom sera cité dans un moment. Et département Imaginons l'identification, mise à jour, le profil des morts avec succès. Le département C, pour ne nommer que ceux-là. Et si j'en viens à l'assistance, c'est que nous avons accueilli tout un Agawam. Auparavant, il s'agissait de l'identifiant de l'employé, mais comme nous utilisons les écouteurs de notification, il est mis à jour. Cela signifie donc que notre profil de mise à jour et de mise à jour fonctionne également parfaitement dans toutes les sections. Maintenant, je travaille. Dans la vidéo suivante, nous travaillerons sur la fonctionnalité permettant de déconnecter un utilisateur. Merci. 27. Travailler pour la signature: Bonjour, bon retour. Dans cette vidéo, nous allons créer ici un bouton de déconnexion, qui permettra à l'employé de se déconnecter de cette application. Ce sera donc très simple et direct. Accédez à l'écran de profil. Alors, dans cette colonne, voyons voir. Nous avons ici une colonne. Nous avons des enfants qui plongent très vite. C'est-à-dire avant cette image d'icône. Créez la marge du conteneur, donnez-lui de la cohérence. Incrustations d'arêtes qui ne s'arrêtaient que lorsque l'alignement en D, l'alignement, le point était brillant. Ensuite, l'enfant sera l'icône du bouton Suivant. Je peux, que ce soit constant, je peux me déconnecter. Déconnectez-vous. Et l'étiquette sera const, text. Déconnectez-vous. Ici. Changeons cela. Top 200, 100, je dirais quand D, parce que nous n'avons pas besoin d' autant de marge. Maintenant, enregistrez-le. Alors, si je vais voir, nous avons ce bouton de déconnexion ici, qui a l'air sympa. Je peux le voir. Maintenant, tout simplement, si vous accédez à des enquêtes artistiques, nous avons déjà le bouton de déconnexion ici. Passons donc à l' écran de profil ici, sur site. Écrivez simplement le fournisseur de contexte ici. Et le fournisseur sera étrange. Sondages. Nous ne voulons pas qu'il écoute les changements. Nous voulions juste appeler ce panneau Wanchun. Ok, enregistre-le. D'accord, voyons maintenant si nous cliquons sur le bouton S'inscrire, si nous sortons ou non. voyez, dès que je clique sur le bouton S'inscrire, cela avertit l'auditeur qui appelle l'écran d'accueil ici. voyez, celui-ci a été reconstruit et nous avons été redirigés vers l'écran de connexion à partir d'ici. C'est pourquoi nous n' avons pas à naviguer, n'est-ce pas, le code de navigation, car cela se fait automatiquement ici. Et pour l'instant, je ne l'ai pas, je ne veux pas ce code ici. Nous envoyons directement la déconnexion depuis l'application. Si je redémarre, la page de connexion sera également affichée à l'employé. Voilà pour cette vidéo. Notre application est terminée, toutes les fonctionnalités fonctionnent. Il ne reste plus qu'à travailler. Si tu vas à table. Nous devons travailler sur la sécurité au niveau des lignes. Dans les prochaines vidéos, nous allons donc activer la sécurité au niveau des lignes et rédiger des politiques pour le tableau. 28. Politiques pour le tableau de présence: Bonjour, bon retour. Il ne reste donc plus qu'à activer la sécurité au niveau des lignes dans notre base de données. La sécurité au niveau des lignes est donc une fonctionnalité de sécurité qui nous permet de contrôler l'accès aux lignes d'une table de base de données en fonction de l'identité ou du rôle d'un utilisateur. En mode supervisé, vous pouvez utiliser le protocole RLS pour restreindre les lignes de données qu'un utilisateur peut voir ou modifier en fonction de règles prédéfinies. Jusqu'à présent, toute personne disposant de la clé API publique avait accès à notre base de données. Ce comportement par défaut après activation du protocole RLS vers une table est qu'il refuse tout accès, que l'utilisateur soit authentifié ou non, tant que nous n'avons pas mentionné nos politiques. Si vous vous y rendez, vous pouvez constater qu'après avoir activé la sécurité au niveau des lignes, toutes les opérations grossières seront refusées. Pour cela, nous devons écrire ce que l'on appelle des politiques. Vous pouvez les considérer comme l' ajout d'une clause where à chaque requête. Une table différente peut avoir une politique RLS différente. Peut-être que vous voulez qu'une table soit produite, peut-être que vous ne l'êtes pas. Alors allons-y. Activez le protocole RLS, accédez à l'authentification, puis aux politiques. Ici, comme vous pouvez le constater, le protocole RLS est désactivé dans tous les tableaux. Nous allons commencer par activer le RLS dans le tableau des présences. De plus, comme je n'ai pas besoin de l'application pour fonctionner, je vais simplement l'arrêter. Et concentrons-nous sur Lee sous RLS. Cliquez donc ici et cela ajoutera une valeur inférieure Êtes-vous sûr de vouloir activer notre sécurité au niveau des lignes pour ce tableau ? Taux de présence, confirmez. Comme vous pouvez le constater, le protocole RLS est activé, mais aucune politique n'a encore été créée. Créons donc une nouvelle politique. Et ici, vous avez deux options. Démarrez rapidement et créez une politique à partir de zéro. Donc, pour des raisons de simplicité, vous aimerez utiliser la fonctionnalité démarrage rapide et, après avoir créé quelques requêtes plus tard, si vous le souhaitez, vous pouvez opter pour une personnalisation plus poussée. Maintenant, cliquez sur Commencer rapidement. Vous pouvez donc voir ici qu'il existe des modèles prédéfinis qui ne peuvent pas être lus par tout le monde. Activez ensuite l'accès par insertion uniquement pour les utilisateurs authentifiés. Ils mettront ensuite à jour l'accès des utilisateurs en fonction de leur identifiant. Comme vous pouvez le voir, ce modèle sert à activer un axe binaire. Mais lorsque vous utilisez ce modèle, vous pouvez même modifier l'accès requis. C'est-à-dire que nous le ferons, nous pouvons utiliser ce modèle, mais à la place, nous pouvons écrire cette mise à jour. Supposons que vous sélectionniez puis que vous activiez l'option Accès pour les utilisateurs en fonction de leur adresse e-mail. Ce n'est donc pas nécessairement le cas si cela ne peut être fait que sur la base de leur e-mail. Enfin, il permet aux utilisateurs d' accéder à la suppression en fonction de leur identifiant. Alors tu viens de lire. Permettre l'accès aux utilisateurs en fonction de leur identifiant, qu'il s'agisse d'un retard, d'une lecture mise à jour, c'est à nous de décider. Alors allons-y. Nous utiliserons l'accès impossible à insérer uniquement pour les utilisateurs authentifiés. Dans ce tableau, c' est une présence. Nous autoriserons l'insertion de toute personne ayant créé un compte. Utilisez donc ce modèle. Alors ici. Comme vous pouvez le constater, le nom de la politique est et il sera inséré pour authentifier les utilisateurs, l'opération autorisée est l'insertion. Les rôles cibles sont uniquement authentifiés, ce qui devrait être vrai. Nous n'apporterons donc aucune modification. Cliquez simplement sur Réviser. Vous pouvez consulter la requête ici. Et n'oubliez pas que cette requête est ce que nous pouvons faire dans notre propre section de personnalisation interne. Si vous savez comment les écrire, requête de suite de Postgres est inconnue, donc c'est bien. Cliquez maintenant sur Enregistrer la politique. Comme vous pouvez le constater, nous avons mis en œuvre avec succès notre première politique qui consiste insérer des données dans le tableau de présence. Encore une fois, pour la deuxième fois, polycyclique sur une nouvelle politique. Alors lancez-vous rapidement. Choisissez maintenant le modèle. Supprimez l'accès des utilisateurs en fonction de leur nom d'utilisateur. Tout d'abord, les glyphicons utilisent ce modèle, mais nous utiliserons le modèle Supprimer pour autoriser les mises à jour excessives. C'est-à-dire que les employés peuvent mettre à jour leurs propres données sur Lee. Il suffit de les modifier d'abord. Nom de la politique permettant d'activer la mise à jour pour les utilisateurs en fonction de l'identifiant utilisateur. Ensuite, au lieu de supprimer, cliquez sur Mettre à jour, puis vous avez ce champ supplémentaire. Alors, quelle expression est nécessaire ? La condition sera si identifiant de point est égal à cet identifiant d'employé, qui est le nom de la colonne. Ici. Utilisateur qui utilise un identifiant de soulignement. Il n'existe aucune colonne de ce type dans notre tableau. Je suppose que oui. Table des employés. Oui. C'étaient des employés. J'ai moi-même oublié. C'était une table de présence ici. Exact. ID d'employé. C'est étrange. La personne qui demande cet excédent, c' est-à-dire son identifiant, doit être égale au champ d'identification de l' employé. Maintenant, copiez et collez simplement la même chose dans cette expression de revérification. Ces deux personnes seront sauvées. Maintenant, cliquez sur Réviser, puis sur Enregistrer la politique. C'est également à ce moment-là que nous avons renvoyé avec succès la politique d'accès à la mise à jour du tableau des présences. Ensuite, encore une fois, une autre politique de présence. Cliquez sur Obtenir. Maintenant, encore une fois, choisissez l' accès de suppression pour les utilisateurs en fonction de leur modèle d'identification. Cliquez sur Utiliser ce modèle. Ensuite, nous allons autoriser une sélection de grignotage qui autorise la lecture, la lecture de ces données. C'est parce que nous savons déjà que nous avons une page sur laquelle les gens feront des excès, qu'ils pourront consulter leur propre historique de fréquentation. Nous n'autoriserons donc que les utilisateurs à accéder à leurs propres données d'historique. Cliquez donc sur Sélectionner. Alors. Ici, ce sera l'identifiant de l'employé. C'est ça. Nous avons donc une sélection inverse pour les utilisateurs en fonction de leur identifiant. Sélectionnez ensuite l'identifiant de l' employé ici également Si vous le souhaitez, vous pouvez ajouter un identifiant d'employé. Le nom ne dépend que de vous. Il s'agit simplement d'un nom de politique. Celui-ci est le plus important, c'est un nom de colonne. Cliquez sur Réviser, puis sur Enregistrer. Comme vous pouvez le constater, nous avons rédigé avec succès des politiques pour l'étable de fréquentation. Comme l'accès à la suppression n'est pas accordé à l' employé dans l'application, nous ne rédigerons pas de politique à cet égard, mais j'espère que vous avez compris. Supposons que vous disposiez de cette fonctionnalité de suppression. De même, vous pouvez également rédiger la politique de suppression. Ce n'est rien de différent de toutes ces politiques. Voilà pour le tableau de présence. Dans la vidéo suivante, nous rédigerons des politiques pour les départements. Merci. 29. Tableau des politiques pour les ministères: Bonjour, Continuons à travailler sur nos politiques. Dans cette vidéo, nous allons travailler sur la table du département ici. Tout d'abord, activez le RLS. Alors oui, nous sommes confirmés. Cliquez ensuite dessus, confirmez. Il s'agit d'une autorisation religieuse. Cliquez ensuite sur Nouvelle politique et lancez-vous rapidement. Maintenant, nous savons que le tableau des départements ne contient aucune donnée sensible. Nous allons donc utiliser ce modèle qui n'est pas un accès en lecture non valide pour tout le monde ici. C'est à vous de décider. Si vous le souhaitez, vous pouvez utiliser ces accès en lecture uniquement pour les utilisateurs authentifiés, mais j'utiliserai ce modèle. Cliquez sur, utilisez ce modèle. Ici. Nous n'apporterons aucune modification. Cliquez sur Afficher, puis sur Enregistrer la politique. Nous avons donc le tableau des politiques de sélection pour les départements. De plus, nous n'avons besoin que de l'accès en lecture pour ce tableau puisque nous insérons les données du département directement à partir du tableau de bord du superviseur dans cette application. Donc, si vous accédez à l'éditeur de tableaux, si vous accédez aux départements, nous avons inséré ces données directement à partir de cette ligne, c' est-à-dire insérer une ligne, et c'est pourquoi nous n'avons pas besoin de politiques. Mais supposons que vous ayez une application différente ou que vous autorisiez le propriétaire de l'entreprise à insérer les départements, vous devrez rédiger la nouvelle politique. Ensuite, les inserts pour authentifier les utilisateurs uniquement sont des départements de lecture pour libérer. L'administrateur est le propriétaire de l'entreprise. Comme toutes ces choses que vous pouvez faire, c'est à vous de décider. Mais comme nous avons cette application simple, nous n'avons pas besoin d' autres politiques. C'est tout pour la table du département. Dans la vidéo suivante, nous allons enfin travailler sur la table des employés, la file d'attente. 30. Politiques pour les employés Table: Bonjour, bon retour. Dans cette vidéo, nous allons travailler sur ces politiques pour la table des employés. Il suffit donc d'activer d'abord le RLS. Puis confirmez. Cliquez ensuite sur Nouvelle politique. Cliquez sur Commencer. Nous utiliserons ce modèle. Vous allez insérer un accès réservé aux utilisateurs authentifiés. Étant donné qu'après avoir créé un compte en cours d'enregistrement, nous allons insérer de nouvelles données utilisateur dans ce tableau. Nous voulons donc uniquement cette insertion pour les utilisateurs authentifiés. Cliquez dessus, utilisez-les. Nous n'apporterons aucune modification ici. Cliquez sur Réviser, puis tout va bien. Cliquez sur Enregistrer la politique. L'insertion est donc terminée. Cliquez à nouveau sur Nouvelle politique. Commencez rapidement. Nous devons maintenant créer une politique pour l'excès de mises à jour. Choisissez le troisième modèle Activez l'accès aux mises à jour pour les utilisateurs en fonction de leur modèle d' e-mail. J'espère donc que vous l'avez bien compris. Cela vérifiera, supposons qu' un utilisateur envoie cette demande. Au lieu de vérifier le nom d'utilisateur, nous ne vérifierons pas l'e-mail Art Dot que vous pouvez indiquer. Cliquez ensuite sur Utiliser le modèle. Et maintenant, si vous vous en souvenez, nous avons déjà une colonne nommée e-mail dans notre tableau, comme ce tableau des employés. Nous n'avons donc pas à apporter de modifications ici. Mais si vous avez quelque chose comme usure molaire du moral des employés, vous devez écrire le nom de la colonne ici. Il s'agit d'une barre oblique de l'employé, d'un trait de soulignement du courrier électronique ou de tout autre nom de colonne. Cliquez sur Réviser, puis sur Enregistrer la politique. Enfin, cette troisième politique portera sur cet excédent cyclique. Et nous utiliserons également le même modèle, c'est-à-dire permettre l'accès aux utilisateurs en fonction de leur e-mail. Et aussi, si vous le souhaitez, vous pouvez les utiliser en fonction de leur idéal. Donc, mais je vais simplement me baser sur leur e-mail. Et cliquez sur Utiliser est le nom de la politique pour une lecture non valide. Utilisateurs en fonction du courrier électronique, les opérations autorisées seraient sélectionnées. Celui-ci est correct, c' est l'avis d'Emily par e-mail. Cliquez ensuite sur Enregistrer la politique. Le protocole RLS est donc activé avec succès dans toutes les tables. Et nous avons également écrit ce qui était requis. Ces politiques. C'est-à-dire qu'il est nécessaire de savoir si l'insertion est acquise par la suppression. Cela dépend d'une application à l'autre. Donc, évidemment, l' utilisateur ne peut rien supprimer puisque la politique de retard n'est pas seule. Un administrateur très biaisé peut accéder directement à un tableau et supprimer les éléments. C'est également une bonne chose, car toute demande de suppression sera annulée. Voilà pour la partie sécurité au niveau des lignes. J'espère que vous l'avez compris. Vous pourriez trouver cela très délicat car ce concept n'existe pas dans d'autres services Cloud. Chacun a ses propres règles de sécurité, d'autres ont des choses différentes. Cela dépend donc du fournisseur de services Cloud. Mais dans la mesure où c'est très simple. Dans la vidéo suivante, nous allons enfin tester le fonctionnement complet notre application avec la sécurité au niveau des lignes activée. Merci. 31. Testez l'application complète: Bonjour, bienvenue sur la vidéo finale de notre cours. Dans cette vidéo, nous allons tester cette application complète. Et j'utilise mon appareil physique ici cette fois. Nous avons également activé la sécurité au niveau des lignes dans les dernières vidéos. Voyons donc si tout fonctionne parfaitement ou non. Alors allons-y et connectons-nous avec nos informations d'identification. 345. Cliquez sur Se connecter. D'accord. Tout va bien jusqu'ici. Voir Je me suis connecté à mon compte. Si j'y vais, j'ai celui-ci, alors dis-le franchement. Cela signifie donc que l'accès à la lecture fonctionne parfaitement ici. Lisez également les excès là-bas. C'est-à-dire la table des employés. Le nom de l'employé se trouve ici. Maintenant, si j'essaie de m'enregistrer sur Slate, d'accord, s'ils utilisent un bouton physique, c'est me demander la position pendant que vous utilisez l'application. Et vous voyez, cela signifie que cela fonctionne. Nous pouvons insérer les données. Rls fonctionne également parfaitement bien. D'accord ? Le profil est donc là. Nous avons le nom complet, nous avons l'identifiant. Et si je pars à nouveau, ce paiement devrait également fonctionner. Ouaip. Cela a également fonctionné. Le checkout est donc également là. Si je clique sur l'historique des présences, j'ai la fréquentation d'aujourd'hui. Et si je change le nom Raul, que je le mets à jour en marketing et que je clique sur Mettre à jour. Appuyez, mettez à jour, mise à jour réussie. Cela a pris du temps, mais je ne pense pas. Cela se reproduira encore et encore. Si je clique simplement sur Redémarrer, vois que nous avons maintenant tout un marketing. Nous avons le département du marketing. Notre application fonctionne donc parfaitement. Toutes les fonctionnalités fonctionnent. Je vais simplement cliquer sur Se déconnecter. Ouaip. Je ne le pense pas. Ce petit décalage se produit dans votre application car j' ai testé à nouveau cette application, dans, encore une fois correctement sur mes appareils. C'est juste ce qui se passe ici, mais ce n'est pas un problème. C'est donc tout pour ce cours. J'espère que vous avez apprécié et appris beaucoup de choses. Consultez également mes autres cours. C'est ça. J'espère vous voir dans mes autres cours. Continuez à vous entraîner.