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.