Transcription
1. INTRODUCTION DU COURS: Si nous devions devenir développeur de Flutter, vous
connaissez peut-être Firebase. Firebase n'est pas la seule
option sur le marché. Il existe un autre concurrent qui constitue une très
bonne alternative, connu sous
le nom de Superbus. Superbus gagne en
popularité de jour en jour et il reçoit une bonne
réponse de la part de la communauté. La meilleure caractéristique est sa nature open source
et leur modèle de tarification. La base d'approvisionnement est gratuite
et son plan de forfait payant est
un forfait mensuel fixe pour utilisation
illimitée,
plutôt que de payer au fur et à mesure, ce qui peut s'avérer très coûteux
à long terme. Ce cours est conçu
pour les débutants. Nous allons commencer par mettre en place
un nouveau projet de supervision. Ensuite, nous apprendrons comment
autoriser son indication à l'aide d' un e-mail et d'un mot de passe
et comment implémenter la connexion à Google. Ensuite, nous aborderons les opérations
rudimentaires de la base de données. Nous écouterons également les
modifications de la base de données en
temps réel via des flux. Comprenez ensuite le concept
de sécurité au niveau lignes et apprenez à rédiger des politiques
pour sécuriser notre application. Et enfin, j'ai appris à télécharger et à supprimer
des fichiers dans ce stockage. À la fin du cours, vous serez en mesure de créer start-up de
vos rêves en utilisant tous ces concepts
et qui sait, elle pourrait devenir la prochaine grande
entreprise du secteur des technologies. Alors, sans gaspiller plus de
diamant, allons-y.
2. Pourquoi utiliser Supabase: Bonjour, bienvenue dans la
toute première vidéo du cours où
nous allons apprendre à utiliser une base de données supervisée
avec la technologie Clutter. Qu'est-ce que Superbus ? Superbus est une plateforme
dorsale open source, en temps réel et puissante qui facilite la création et la mise à l'échelle d'
applications Web et mobiles. To biowaste s'appuie sur la
suite de Postgres, une puissante base de données SQL
qui permet travailler
facilement avec des structures
et des relations de données
complexes. Il dispose également d'un
support intégré pour l'authentification, l'autorisation, la logique
côté serveur et le stockage. Wildfire, qui existe
depuis certain temps et possède un
large éventail de fonctionnalités. Barbies est donc un acteur relativement
nouveau sur le marché, mais il gagne rapidement en popularité auprès des développeurs en
raison de sa nature open source. Il intègre de puissantes
fonctionnalités et une grande flexibilité. Avec Superbus, vous avez contrôle
total de vos données et infrastructure et vous pouvez personnaliser le service
en fonction de vos besoins. Dans ce cours, nous nous
concentrerons sur l'apprentissage de l'authentification, base de données, de
la sécurité au niveau des lignes et stockage de manière simplifiée
étape par étape. Mais avant de passer à autre chose, discutons de quelques
points sur les raisons pour lesquelles nous devrions choisir Supervisor plutôt que Firebase. Le premier point concerne les bases de données SQL
et NoSQL. données des suites de Postgres
sont particulièrement puissantes lorsqu'il s'agit de requêtes, de
jointures et de filtres
complexes. Parce que les données sont organisées en tables,
relations définies. Dans Supervise, vous pouvez utiliser la commande join pour
combiner les données de plusieurs tables dans lesquelles vous
souhaitez récupérer les
données associées dans une seule requête. Vous pouvez également utiliser le filtrage
et le tri des commentaires, comme dans le cas d'un OrderBy, pour récupérer
des sous-ensembles de données spécifiques. En revanche, les
bases de données NoSQL, telles que Fire Basis, portent des données, peuvent s'avérer plus
difficiles et moins efficaces. modèle Firebase NoSQL ne dispose pas du même support intégré pour les requêtes, les
jointures et le filtrage
complexes. Vous devrez donc peut-être récupérer
des données à partir de plusieurs documents ,
puis effectuer ces
requêtes côté client. Une deuxième différence importante
est le modèle de tarification. Les deux sont gratuits
pour les débutants. C'est-à-dire que vous pouvez
commencer gratuitement. Mais le
modèle de tarification de Superbus est plus flexible et plus
rentable que Firebase. Superviser. Les forfaits payants frais mensuels fixes
pour
un nombre illimité d'utilisateurs, tandis que Firebase facture en
fonction des utilisateurs et propose des coûts plus élevés
pour les utilisateurs plus élevés. À long terme, si votre application se développe, l'utilisation
annuelle augmente. Le troisième point concerne l'importation de
données préexistantes. Nous dirions omniprésente. Nous pouvons facilement importer un fichier CSV ou copier-coller une feuille
de calcul pour démarrer le projet. C'est très bien si
nous migrons des données d'une autre plateforme
vers des superbugs. Firebase ne propose pas de services
intégrés nous
permettant de
télécharger directement des données en masse. Vous avez peut-être
des packages tiers, je ne sais pas,
mais ils ne sont pas intégrés. Le point suivant est l'auto-hébergement. De nombreux développeurs souhaiteront peut-être
créer une application auto-hébergée. Attendez pour des
raisons de sécurité ou d'évolutivité. En matière d'auto-hébergement, Dan dit que c'est simple. Firebase ne nous autorise pas
à vendre, a forcé notre application. Eh bien, les super affaires, nous hébergeons nous-mêmes,
c'est important pour vous. Alors Superbus est
la meilleure option. Alors. Le dernier point concerne l'
absence de dépendance vis-à-vis du fournisseur. Lorsque vous utilisez un service
basé sur le cloud, il est important de prendre en compte le risque de dépendance vis-à-vis d'un fournisseur. dépendance à un fournisseur se produit
lorsque vous devenez dépendant d'un
fournisseur particulier de Forest Service, ce qui rend difficile ou coûteux le passage à un
autre fournisseur. Bobby's nous donne donc la liberté de changer de fournisseur à tout moment sans
frais supplémentaires. Mais ce n'est pas le
cas avec Firebase. Nous sommes coincés avec la
plateforme Google pour toujours. Donc, soit nous sommes autorisés à nous héberger nous-mêmes dès
le début, soit supposons que vous
commenciez à utiliser Superbus, mais plus tard, j'ai voulu modifier la plate-forme qui est également
autorisée dans Super Base. Pour ces raisons, je pense également que Superbus est plus convivial ou
convient mieux aux personnes qui ne veulent pas prendre le risque de prendre le risque de
prendre la base de données Firebase et se faire payer une facture énorme pour du code ou une
erreur dans leur application. Parce qu'il
n'y a pas de frais fixes dans Firebase, vos dépenses
peuvent augmenter de façon exponentielle. Alors c'est tout. Sans perdre plus de
temps sur la partie théorique. Mettons-nous les mains à
la pâte et nous
commencerons à travailler sur notre
application Flutter dans la prochaine vidéo. Merci.
3. Créez un nouveau projet: Il est maintenant temps de
commencer et de créer un
nouveau projet Flutter. Et je suppose que
vous avez déjà installé le
SDK Flutter sur votre système. Accédez à votre
dossier préféré et écrivez cette commande pour
créer un nouveau projet. Créez Superbus. Je vais, je vais nommer le dossier ainsi. Tu peux le nommer
comme tu veux. Entrons. Cela ne prendra que quelques secondes. D'accord ? Maintenant, notre projet
est créé avec succès. Je vais simplement écrire, je vais d'abord aller chez Flutter. C'est plié comme ça. Ensuite, écrivez l'espace du code de
commande pour ouvrir ce dossier dans
notre éditeur de code VS. Vous pouvez voir ici que nous avons tous
ces fichiers et dossiers. Maintenant c'est l'heure. Nous créons un nouveau compte
Superbus
, puis utilisons ces paramètres dans notre projet plus plat
pour le connecter. Il vous suffit de vous rendre sur supervise.com comme ceci et de vous connecter
avec votre compte. Je me suis déjà connecté. Alors maintenant, vous pouvez voir que je
n'ai aucun projet. Nous devons donc d'abord
créer un nouveau projet. Cela indiquera votre organisation. Ainsi, lorsque vous vous connectez, vous pouvez également créer une
organisation. Je vais écrire le
nom du projet sous la forme Flutter, super base. Utilisez n'importe quel mot de passe. Je vais juste écrire
pour générer un mot de passe. C'est ça. Choisissez ensuite les études et celle
qui est la plus proche de vous. Je vais juste choisir celui-ci. Et je vais commencer par le plan
tarifaire qui est gratuit. OK, maintenant, créez un nouveau projet. Après avoir créé le projet, il faudra deux à trois
secondes pour créer une base de données et nous
obtiendrons les informations de notre API. Vous pouvez donc voir ici que j'ai
également les clés d'API et l'URL. Et vous pouvez également obtenir les mêmes informations sur l'API dans
cette section. C'est la page Paramètres
plus tard si vous le souhaitez, et accédez à cette API
dans la barre latérale. Celui-ci. Nous allons maintenant utiliser ces clés d'API
dans l'application Flutter. Et pour cela, je vais
utiliser une dépendance. Il suffit d'aller au pub Dev
ici, tout d'abord, Superbus Flutter. C'est la dépendance
que je vais utiliser pour me
connecter à dw et la copier. Accédez à votre dossier, puis à Pub spec dot YAML. Et je vais le coller ici. Appuyez sur Entrée. Le prochain package que je veux
s'appelle dot ENV. Ce package est utilisé pour que
nos mots de passe soient sensibles. Les informations ne sont
pas compromises car il n'est pas
conseillé d'écrire directement dans l'interface utilisateur. Il suffit de le copier et
de le coller. C'est ça. Ces deux
packages sont maintenant installés. Pour utiliser ce package point ENV
dans le dossier racine, nous devons créer un fichier portant uniquement l'extension point ENV.
Prénom. Ici, nous écrirons
nos informations d'identification. Je vais le nommer super base, l'URL est égale à. Et deuxièmement, de superbes moyens. K est égal à. Revenons à votre
tableau de bord. Vous avez cette URL ici, copiez-la et
collez-la dans l'URL. Encore une fois, allez voir ici
que vous avez une clé publique et une clé. Il suffit de le copier et de le
coller dans cette clé. C'est ça. Fermez simplement les points
ENV où vous ne le souhaitez pas. Encore une fois. Pour s'assurer que notre application peut
accéder à ce fichier ENV à points. Vous devez le
mentionner dans les actifs. C'est-à-dire aller à Pub spec point YAML. Et ci-dessous, dans
la ligne 65, vous pouvez voir qu'il est commenté. Tout d'abord,
supprimez les articles non commentés. Ici. Encore une fois, peu commun
le premier. Et le point droit ENV. Et souvenez-vous toujours que ce
fichier YAML pub spec dot est très sensible. Si vous avez des
erreurs de tabulation ou d'espace ici et
là, cela générera une erreur. C'est donc également fait. Il est maintenant temps
d'initialiser notre application. Passez donc à la branche et au point principal. Et nous devons initialiser
le client Superbus dans notre fonction principale avec informations d'identification de
l'API que
vous avez copiées précédemment. C'est-à-dire que vous l'avez mentionné
dans ce fichier point ENV. Tout d'abord, oui, importez le package
super base ici. Et donc, importez le point e. Et nous l'avons fait, pas ENV, slash,
point, point ENV, comme ceci. Dans la fonction principale. Assurez-vous d'en
faire un évier. Ensuite, vous devez écrire ces
commentaires de manière rigide. Reliure Florida. Assurez-vous de
l'initialisation pour vous
assurer que tout
est initialisé. La première chose
à faire est de charger ENV. Ils attendent le chargement de points ENV. Il s'agit de la commande
fournie par ce package. Ensuite, nous devons toujours
initialiser la soupe. Tout d'abord, je vais
obtenir une URL super base, c'
est-à-dire point ENV, puis ENV. Et ici, je vais ajouter cette
clé qui est une URL de base. Et s'il est nul, utilisez
simplement cette chaîne vide. Et l'URL est en majuscule. Ces choses créeront des erreurs. Ensuite, collez-le et j'ajouterai noms
des variables ci-dessus, c'est la clé. Et ce sera essentiel. Après cela,
attendez simplement la super base, ne l'initialisez pas sauf cURL. Nous l'avons. Et en cure de désintoxication
clé aussi. Oh, d'accord. Nous avons ces choses. C'est l'heure. Nous structurons
notre projet en dossiers. Au lieu de tout écrire
dans ce fichier à points principal, allez
simplement dans le laboratoire, créez un dossier
et nommez-le pages. À l'intérieur, créez deux pages supplémentaires. Il s'agit de déplacer
des fichiers point de page d'accueil point, point et page de démarrage point, point. Comme ça. Sur la page d'accueil. Importez simplement ce matériel. Puis il est resté moins rigide. Et page d'accueil. J'ai créé ce rigide quelques secondes en utilisant
quelques extensions ici. Vous pouvez donc également ajouter
ces extensions. Oui, je change vraiment l'espace pour le corps,
puis le centre. Enfant. Écrivez simplement la page d'accueil. Nous allons évidemment modifier ces
choses plus tard. Alors je me demande juste
pourquoi ces lignes sont là ? OK, allons-y encore une fois. Accédez à l'import de la page, mon TTL, puis à la date moins rigide. Nommez-le Start. Revenez ensuite, échafaudage, puis
corps, puis centre. Je vais à nouveau simplement écrire
le nom de la page pour le moment. C'est une page noire. C'est un mot en N, n'est-ce pas ? OK. Mais plus tard, nous
devrons évidemment supprimer cette constante. Et maintenant, voyons ce qui
se passe dans les vidéos suivantes. Maintenant, tout est fait ici. Ensuite, dans la vidéo suivante, nous travaillerons sur la
partie authentification et les pages. Cela dit, en regardant
la vidéo suivante.
4. Configuration de l'écran d'Auth: Bonjour. Il est maintenant temps d'en apprendre davantage sur l'authentification des utilisateurs dans Superbus. Accédez au
fichier principal à points et supprimez tout ce qui se trouve en dessous, mon application. Supprimons-le. Je vais également supprimer ces commentaires juste pour le
rendre propre. Créez maintenant un nouveau
widget dynamique et nommez-le. C'est-à-dire avec stayed for rigid et nommez-le art. D'accord. Maintenant, dans cette page d'art, nous allons afficher ou rediriger
vers la redirection l'utilisateur, selon que l'utilisateur est déjà authentifié ou non. d'autres termes, nous allons
simplement vérifier si un utilisateur s'est déjà
connecté ou s'il s'agit d'un nouvel utilisateur. C'est donc ce que je vais faire ici. Tout d'abord, je vais créer
une super instance de base. C'est une instance aveugle. Supposons que always
supervise soit égal au client d'
instance point des
autoroutes. C'est ainsi que nous appelons les fonctions
fournies par Superbus. Après ça. Donc, les fournitures, les cadeaux, nos
retours en tant qu'utilisateur. Je vais juste avoir
cette variable utilisateur. N'oubliez pas que cela
vient de Superbus. Je l'attribuerai simplement
à cet utilisateur plus tard. Et maintenant, je vais juste vérifier si l'utilisateur est égal à null. Ensuite, je vais créer
cette page qui est une page sombre. J'ai cette page. N'oubliez pas dans la dernière
vidéo ou sur la page d'accueil. C'est simple Ça l'est. Si l'utilisateur y est déjà,
connectez-vous directement, connectez-le à la page d'accueil,
sinon il lui demandera de se connecter. Ici. Faites de cette page la page d'accueil. Et maintenant, notre
laboratoire de matériaux. C'est chose faite. Maintenant. Ce que nous allons faire, ce
sont des super moyens, des cadeaux, peu de fonctions, c'est-à-dire pour entrer dans l'utilisateur. C'est la commande. Donc,
le point de Bobby est entré dans l'utilisateur. Tellement sympa. commande renvoie un objet utilisateur. OK, c'est aussi simple que ça. Créons maintenant la fonction
future. De toute évidence. Cela ne
prendra que quelques secondes. C'est pourquoi ce nom est devenu
une œuvre d'art. Un lavabo. J'espère que vous savez que
ce concept de base est ce que l'on appelle ce futur. Et parce qu'ils sont
obligatoires pour ce cours. Maintenant, ici, je vais simplement indiquer que c'est cette
variable utilisateur de cette commande, c'est User point,
point, utilisateur actuel. Et ici, vous pouvez voir,
cela nous donne cet utilisateur. Si vous le survolez,
cela nous donne cet utilisateur, il peut être nul et
avoir une valeur. Ensuite, ce que nous voulons,
c'est écouter. Cela concerne notre changement d'État. Cela signifie simplement que si l'état de l'
utilisateur change, c'est-à-dire l'utilisateur se déconnecte
ou se connecte, notre page se rechargera. C'est-à-dire qu'il peut être
renvoyé à la page d'accueil
ou à la page d'accueil. Ici. Et ici. Devons-nous écouter ? C'est l'événement. Et maintenant, nous allons
mentionner l'état défini. User est un appel à event
point session dot user, et cela peut également être nul. Donc, si ce n'est ni l'un ni l'autre, attribuez simplement
la valeur nulle. Si tu l'as survolé. Tu vois, c'est un jeu
en tant qu'utilisateur. Cela signifie donc simplement
obtenir l'utilisateur actuel. Vous pouvez soit utiliser notre fonction utilisateur Dark
Current. Il existe également cette fonction. Cette session. À partir de la session, vous pouvez
obtenir les détails de l'utilisateur. D'accord ? Maintenant, je vais appeler cette fonction
dans l'état init. est-à-dire que lorsque cet écran
est affiché, la première chose que vous, lui, faire
pour
cette fonction est de l'appeler. Et après cela, en fonction
de la valeur utilisateur, l'écran sera renvoyé. Donc, ce truc est
prêt. C'est l'heure. Nous exécutons l'application. Et je vais aussi simplement le changer pour
qu'il s'appelle
Florida Superbus. Et j'ai la page d'accueil
sous forme d'art en ce moment. OK, faisons en sorte que cela
soit constant plus tard. Si nécessaire, je le
modifierai. Et je vais également supprimer ce binaire de
débogage. Maintenant, vous exécutez cette application. Vous pouvez utiliser un appareil virtuel, mais également votre appareil physique. Vous pouvez vous connecter via un
câble USB et activer le
débogage, le débogage sur votre appareil mobile. Mais je vais
simplement utiliser un émulateur. Allez en haut et Android Studio ici plus d'actions que
Virtual Device Manager. J'ai déjà créé cet appareil, mais vous pouvez en créer un
nouveau à partir d'ici. Et voyez, j'utilise le pixel
pour l'API 30 et je lis 11. Nous allons simplement commencer ici. Si votre système n'est pas puissant, je suppose qu'Android Studio le ralentira ou
que l'
Arctique sera lent. Vous avez maintenant votre appareil ici. Et vous pouvez voir dans ce VS Code mon appareil est maintenant actif. Je vais juste courir et
commencer le débogage. Heure. Cela prend du temps. Il faut donc attendre
et avoir des patients. Je voudrais simplement dire que, supposons que vous souhaitiez en savoir
plus sur l'authentification, les fonctions et les terminologies, vous pouvez vous rendre sur le site
officiel de Supervision. Ici, vous en
saurez plus sur les
sessions actuelles des utilisateurs et tout le reste. Mais il y a surtout peu de choses, seulement quelques mots clés et je pense que
c'est un anglais très simple. Cela ne devrait donc pas être si
difficile à retenir. Cela prend du temps, mais je suppose que nous devons attendre. n'y a pas d'autre solution. Et voyez. J'ai cet avertissement. Ce n'est pas comme si l'application ne s'exécutait pas, mais j'ai cet avertissement
ici qui consiste à modifier la version du SDK du compilateur. Je vais donc vous montrer comment procéder. Mais si vous n'obtenez pas ces lignes rouges, alors c'est bon. Mais dans mon système, j'ai la mise à jour. Mais comme vous pouvez le constater, il s'est construit
avec succès. Je sais que cela a pris beaucoup de temps. J'espère que votre système
ne prendra pas ce temps. Voyons ce qui est
rendu au début ou à la maison. voyez, nous avons cette
troisième page ici. L'application fonctionne donc
correctement, c'
est-à-dire que Superbus est également connecté et qu'il
n'y a aucun ajout. Et je vais également
vous dire comment résoudre ce problème. Fermer. Je suis juste en train d'arrêter
l'application. Alors. Accédez au dossier Android, puis à l'application, puis créez
le fichier Gradle. Ici. Vous verrez le 29 sous-jacent. Cette version du SDK de compilation. Ne compilez pas la version du SDK. Je vais juste supprimer le
battement et c'est vrai, 33. C'est ça Et enregistre-le. Et maintenant, il suffit de recommencer et de recommencer pour qu'
ils commencent à déboguer. Et j'espère que vous ne verrez aucune ligne rouge ni
aucun avertissement ici. Je ne veux pas recommencer, attendre que cette
application s'exécute. Alors rendez-vous dans la prochaine vidéo.
5. Travailler sur l'interface utilisateur de StartPage: Bonjour, bon retour. Vous pouvez donc voir dans la console de
débogage qu' il n'y a aucun avertissement
après le changement, le compilateur a une
version du SDK obsolète. Il est temps de travailler sur
l'interface utilisateur de la page d'accueil. Il s'agit de la page où l'utilisateur peut se connecter et s'inscrire. La première chose à faire est d'en faire une version complète de l'État. Parce que nous
travaillerons évidemment avec de nombreux États. Et commençons à
écrire nos états. La première chose est que l'instance client
Super Ways. Donc, le client point
instance de Bobby. Ensuite, nous avons la valeur
booléenne de E indique que lors du chargement, elle
sera fausse pour la première fois. Et une autre est, ce n'est pas le
cas, c'est que je vais simplement écrire le
chargement de l'inscription, comme ceci, chargement de la
connexion, et ici
ce sera le chargement de l'inscription. C'est faux également. Ensuite, connectez-vous et vous inscrivez, j'aurai besoin des baleines fiscales
que j'ai. Ce contrôleur d'édition de texte
est le concept de Flutter. Et évidemment, l'e-mail est leur mot de passe également. Le contrôleur de bus est égal à
x Everything Controller. Ensuite, nous utiliserons le
widget de formulaire dont nous avons besoin. Sur clé. Ce ne sont que de la syntaxe. Vous devez vous rappeler que ces formulaires
peu volumineux
indiquent la valeur nulle. Et je me souviendrai toujours de disposer des états qui ne le sont pas tous, principalement à des
fins d'exemple. Et le montage des decks
et le soda plus frais, il n'y a pas de fuite de mémoire. OK, Non, descends en dessous. Et il avait dans son corps, j'
aurai ce centre. Mais chez cet enfant, cet enfant aura
la forme vision et la bombe aura colonne k, c. Et un an est une valeur
obligatoire de K G, N ici, puisque
allons-y et vérifions-la. Oui, Foleys est là, d'accord. Les constantes ne devraient pas
être présentes. C'est ça. C'était le problème ici. Est-ce que ça ne devrait pas être constant. Non. Nous utiliserons cette propriété de colonne qui est l'alignement
principal, l'alignement
moyen existe, le centre de
données d'alignement. croix x représente la terre, l'excédent d'alignement
brut est
au centre et n'est pas centrée. Oui, tu t'étires. Et je vais emballer ce formulaire. Quel enfant célibataire ? Vue déroulante. n'y a aucune erreur
lors de la saisie. C'est-à-dire que lorsque nous saisissons
un e-mail, aucun mot de passe n'est ajouté. disant que c'est l'interface utilisateur, j'ai juste oublié l'additionneur, mais si vous supprimez le défilement à canal unique,
vous y arriverez. Je vais vous le montrer plus tard. Après ce forum. Dans cette chronique, je vais donner quelques précisions sur ce type de comportement. La première chose, c'est que j'obtiendrai
toujours une image réseau. Accédez simplement à Google Images
et à l'icône du logo Serge Superbus. Je vais juste ouvrir l'image. Ici. Sont la colle. Copions l'image et voyons s'il s'agit d'un point PNG ou non. Savoir. Cela peut en donner un
peu, car vous ne
devriez pas avoir d'image portant cette extension. Copions l'
adresse et la base de cette image. C'est mon image. Ouvrez simplement cette même image. Et maintenant, comme copier l'adresse de l'image. Maintenant, si je le colle, vois que cela a cette
extension PNG. Et j'ai vraiment donné. Hauteur maximale de 150. Sauvegardez-le. Vous avez une application en cours d'exécution. Je ne sais pas ce que Stat Edit. Ok, il y a un problème. Ce sont trois images solides
que le réseau est là. Je ne pense pas. Il devrait y avoir une erreur, mais je viens de redémarrer. Encore une fois. Je vais juste
changer l'image. Nous allons obtenir des données et encore une fois, nous utiliserons cette image. Robe B major. , c'est tellement drôle qu'on ne peut pas
obtenir d'image. Mec. Et voyons voir,
utilisons d'autres trucs. Je vais juste donner d'autres
widgets et, plus tard, des gènes tels que cette image, ce champ e-mail, mot de passe, cet ami. Le champ suivant. Et je vais juste utiliser une boîte de
taille, leur donner de l'espace. Et bouton surélevé. Avoir une connexion. Voyons voir. Y en a-t-il ajouté ici ? Je vais juste l'arrêter
et le relancer. Nous avons cette sortie ici. Le logo, deux champs de texte,
n'importe quel bouton de connexion. J'aurai également un bouton d'
inscription ici, et j'utiliserai simplement Divider. Soyez const. Alors. Il suffit d'avoir un bouton de
plan et de s'inscrire pour élever des enfants. C'est ça. Nous avons donc l'échafaudage et literie
centrale est là. D'accord. Maintenant,
décorons le formulaire de texte pour que le champ e-mail coïncide. J'utiliserai le validateur pour m'assurer qu'
il n'est pas soumis. Vide. La valeur est égale à null. Le point de valeur est vide. Nous
reviendrons simplement, si nécessaire. Sinon, si tout va
bien, renvoyez simplement null. C'est-à-dire qu'il n'y a pas d'erreur
de validation. Ensuite, nous avons le contrôleur
en tant que contrôleur de courrier électronique. Déclaration. Et mettez de la décoration. L'étiquette est égale au courrier électronique et adresse e-mail à point
de saisie au
clavier. Maintenant, allez dans le bus pour le champ du
mot de passe. Nous avons maintenant un validateur. Si la valeur est égale à null et si la valeur est vide, retour est requis. Rl. Allumez donc cette manette, nous avons une décoration de
manette tourbillonnante. Décoration, limite égale
au texte, à l'épée et à l'obscurcissement. X est égal à vrai. En d'autres termes, l'utilisateur ne doit pas
voir ce qu'il tape. Maintenant, enregistrez-le. Consultez notre application et voyez
qu'elle a l'air décente. s'agit évidemment
pas d'un cours d'interface utilisateur. Notre objectif est d'
apprendre le Superbus. En eux. la vidéo suivante, nous allons apprendre comment
implémenter les fonctionnalités de
connexion ou d'inscription. Et Q.
6. Mettre en place l'inscription et la connexion: Bonjour, nous avons donc notre interface utilisateur prête. Il est maintenant temps de mettre en œuvre
ce signe de fonctionnalité. Cette
instance de Superbus contient donc de l'art, comme vous l'avez vu ici, qui
se trouve dans le fichier main.out. La
fonctionnalité d'inscription des partenaires. La syntaxe est similaire à la syntaxe. Super moyens de ne rien faire, de
l'art, pas de s'inscrire. Et ici, nous devons envoyer un
e-mail et un mot de passe. C'est ça. Il s'agit de l'index de
liste requis. Et il nous renverra
la session ainsi que l'utilisateur. Maintenant, pour implémenter cela, notre bouton d'inscription se trouve ici. Tout d'abord, je vais simplement
vérifier que c'est l'
inscription en cours de chargement, est-ce là, puis l'indicateur de
progression circulaire
géant Const Center . C'est pour cet
indicateur de progression ou bien Passons à la pression et faisons de
cet enfant une constante. Maintenant, la première chose que nous devons vérifier dans
le formulaire est valide. Ceci est valide et est égal à l'état actuel du point qi de la
bombe. Ne vous y attardez pas. La première chose à
vérifier est de savoir si c'est valide ou non. Et si c'est le
cas, si ce n'est pas correct, attribuez simplement la valeur null. Maintenant, nous avons une déclaration if. Si c'est valide, pas égal à vrai, alors nous
reviendrons simplement à partir d'ici. Sinon, nous
enverrons le ministère des Transports de l'État. chargement de l'inscription est vrai. Oui, nous allons montrer
un indicateur de chargement. Ensuite, nous allons
tout y emballer, un bloc d'essai. Maintenant, essayons une super
méthode étrange. Inscrivez-vous point, point comme ça. Et ici, pour l'
e-mail, nous devons
écrire un
contrôleur de courrier électronique, pas du texte. Et pour le mot de
passe, le texte du nœud du contrôleur de mot de passe. Et après cela, nous n'aurons plus que messager, le snack-bar. Succès. Pour l'automatisation. Email envoyé, couleur de
fond,
couleurs, vert foncé. Et cela peut être constant. Et je suppose que ça t'attend. Nous avons des jours de domaine
sur Press Sync. Ensuite, nous nous enverrons des données. Le chargement de l'inscription est
égal à faux. C'est ça. Maintenant, et s'il y avait un messager attentif qui pas de contextes qui
montrent les inconvénients des snack-bars. inscription au Snack Bar x Allons-nous échouer ? Aucune couleur de fond. La couleur est rouge. A et nous devons à nouveau
définir Destined sur false, c'est-à-dire vous inscrire. Le chargement est égal à faux. Nous
essayons donc d'abord d'enregistrer le temps qui m'a
été donné, qui nous a été donné par Superbus. Et puis nous
montrons le snack-bar. Si c'est confirmé ou si c'est le
cas, s'il y en a un ajouté, nous
montrerons également le snack-bar. N'oubliez pas que Superbus
active par défaut la vérification des e-mails, ce qui signifie que lorsque vous utilisez l' authentification
Superbus avec
ces paramètres activés, vos utilisateurs
doivent vérifier leur adresse e-mail
pour que les comptes
soient actifs. Vous pouvez également le désactiver
en accédant à l'option Paramètres dans la section
d'authentification. Maintenant, nous avons cette méthode
d'inscription, revenez simplement, écrivons également
cette connexion. Et après cela, nous le déclarerons. De même. Pour la fonctionnalité de connexion. C'est l'index de base
qui contient des super moyens, et non de l'art, à
ne pas dire avec un
mot de passe faible comme celui-ci. Mais c'est cet indice. Ici, nous devons donner un e-mail
et un mot de passe. Il s'agit d'une syntaxe. Notre connexion. Allons-y. Disons que nous avons ce bouton
surélevé ici. Oui. Fais-le couler. Il s'agit du bouton de connexion. Après le filet. Beaucoup de choses seront similaires,
comme tout d'abord, nous vérifierons si le
chargement de la connexion est vrai. Puis const center child. Cool. Indicateur de progrès. Et après cela, nous ferons
comme acheter une ligase. Encore une fois, copiez également. Pourquoi perdre du temps. D'ici à ici. Copions tout. Je suis resté ici. Et maintenant, voyons tout
vérifier. Ça le dira. Et pendant le chargement. De même, ce
sera signer, se connecter. Alors ce sera, disons, en poids. D'autres choses. C'est ce que nous disons et nous n'en avons pas besoin, car
cela se trouvera directement
dans la page d'accueil. Mais ici, il ne nous
reste plus qu'à nous connecter. Et c'est tout. C'est donc chose faite et
j'espère que cela fonctionnera. Nous avons
rédigé avec succès l'inscription ainsi que les fonctionnalités. Dans la vidéo suivante, nous
allons maintenant tester le fonctionnement de ces fonctions
ainsi que le design. Merci.
7. Fonctionnalité de déconnexion: Bonjour, il est temps de tester
la fonctionnalité. Écrivons un e-mail et un mot de passe 12345 et
cliquez sur S'inscrire. Voir e-mail de réussite,
centime de confirmation. Nous devons maintenant accéder à cette adresse Gmail et
cliquer sur Conformation. Passons à Gmail n. Lorsque vous accédez à la
section d'authentification et que vous rechargez. voyez, nous avons cet e-mail ici et il est écrit
pour vérification. Et ici, il vous
suffit de cliquer sur le Z-disc, de
confirmer votre e-mail. Et maintenant, ça ne servira à rien. Mais si nous rechargeons la section
d'authentification, assurons que la vérification
est terminée. Maintenant, si nous y allons nous avons déjà l'e-mail et le
mot de passe. Comme nous n'avons pas dit
que les états étaient supprimés, nous pouvons tester directement l'
attribution de fonctionnalités. Cliquons dessus et voyons. La page d'accueil est ouverte. Vous pensez peut-être que nous ne naviguons pas
après l'inscription, la connexion. C'est-à-dire que nous avons
ce panneau ici. Nous ne naviguons pas. Mais si nous passons au fichier
point principal, ici, nous écoutons le changement
d'état de l'art. C'est pourquoi il nous
renvoie automatiquement à la page d'accueil. Maintenant, sur la page d'accueil, nous avons un simple bouton pour implémenter également cette
déconnexion. Accédez à la page d'accueil. Ici. Ajoutons les importantes NANDA autoroutes
matérielles
importantes de la
NANDA. Et je suis maintenant directement dans l'application, mais j'aurai un bouton. Des actions. Ensuite, je peux appuyer. Je peux l'être, je
ne peux pas me déconnecter de celui-ci. Rends-le constant. Et pour implémenter sur presse abord BAA, une instance
supervisée. La base de clients des batteries est égale à celle du client point
instance de Bobby. D'accord ? C'est de la syntaxe. Ici. Cela ne peut pas être constant. Maintenant, la syntaxe de psi naught est encore une fois très simple. Connaissez les autoroutes,
pas, ne déconnectez pas. C'est ça C'est le seul que l'on appelle calme. Maintenant, après l'avoir enregistré, si je vais dans l'application
et que je clique ici, c'
est-à-dire ce bouton de déconnexion, cela devrait nous rediriger
vers la page de démarrage. C'est la page d'accueil, disons C. Maintenant, nous sommes redirigés
vers la page de connexion. Nos fonctionnalités d'inscription, de
connexion et de déconnexion
fonctionnent donc parfaitement. Dans la vidéo suivante, nous allons découvrir un concept
connu sous le nom de lien profond. Merci
8. Intégration de lien profond: Bonjour, bon retour. Dans cette vidéo, nous allons travailler sur cette intégration de
liens profonds dans notre application. authentification par mot de passe par e-mail fonctionne donc. Mettons
en place des liens profonds pour
que les utilisateurs qui se sont connectés via un lien magique ou
externe ou non, c'est-à-dire Google ou Facebook,
puissent revenir l'application dont vous aurez besoin pour
accéder au compte de votre superviseur, à savoir Dashboard. Cliquez ensuite sur Authentification. Je peux ensuite cliquer sur Configuration de
l'URL. Vous trouverez ici ces
steadies, redirections, URL, URL que les fournisseurs étranges
sont autorisés à rediriger. Après authentification. Cliquez simplement sur Ajouter une
URL et cliquez sur le point io droit. Super moyens pour mon application de se connecter en double barre oblique. Je trouve Fall Back, c'est tout. Cliquez ensuite sur Ajouter un domaine. voyez, nous avons cette URL de
redirection ici. Vous pouvez renommer cette application
my flutter et ce rappel de connexion. Mais j'ai essayé de changer
ce truc qui est io point Superbus
et cela
m'a donné un moment de redirection. Donc, si vous le souhaitez, vous pouvez l'essayer vous-même en donnant
différents noms. Maintenant, la prochaine étape
pour les liens profonds est d'ajouter du code. Dans le dossier Android et iOS. Vous pouvez simplement consulter
la documentation de Superbus
et en savoir plus sur la
configuration du jeu C. Nous
avons ajouté cette URL de
redirection ici, ils utilisent un Quickstart
plus plat. J'ai ensuite changé le
nom pour Android, ajouté la source des applications Android
et AndroidManifest.xml. Alors allons-y. source de l'application Android signifie
AndroidManifest.xml. Et en dessous de ce IntentFilter, nous devons copier ce truc. OK, copiez simplement celui du milieu. Allez-y. Et ci-dessus,
voici l'activité de clôture. Il suffit de le coller. Ici, changez ce schéma. C'est votre application rechargée. Et l'hôte est le même, c'est le rappel de connexion. Nous sommes rentrés, d'accord. Ce que nous n'
avons pas à faire. Maintenant pour iOS. Nous devons procéder à ces changements. C'est essentiel. Il suffit de copier ce truc au-dessus
du piège final. Passons au dossier iOS. Alors. Exécutez notre fichier
info.plist. Ici. Dans cette position. Il suffit de le coller. Et encore une fois, modifiez
cette chaîne ici. C'est mon application préférée. C'est ça. Période. Après ces modifications,
arrêtez simplement votre application. Assurez-vous de
tout enregistrer, puis exécuter à nouveau afin
que ces modifications soient reflétées dans
l'application. Voilà pour ce lien profond. Dans la vidéo suivante, nous verrons comment
implémenter la connexion à Google dans notre application. Merci.
9. Configuration de Google Oauth: Bonjour, pour activer
l'authentification Google dans notre projet. Tout d'abord, nous devons configurer Google Art et obtenir
ces informations d'identification. suffit donc d'ouvrir votre navigateur, d'
aller sur cloud.google.com, vous êtes déjà
connecté par défaut. Sinon, connectez-vous simplement avec leur compte Google, puis cliquez sur Console. Maintenant, j'ai déjà ce
projet, mais vous ne le verrez peut-être pas. Vous pourriez voir ici comment
sélectionner le projet. Cliquez ensuite ici. Cliquez ensuite sur Créer un nouveau
projet en haut. En nommant simplement le projet, j'écrirai son inondation. L'ampoule l'est. D'accord. Cliquez ensuite sur Créer.
Elle crée. Maintenant, comme vous pouvez le voir, il vous suffit de
sélectionner le projet nouvellement
créé. Maintenant, vous pouvez voir ici que vous
travaillez en Floride. la pauvreté est donc la prochaine étape à franchir : créer
les clés de notre projet. Dans la barre de recherche. Ici, tapez simplement AUD. Cliquez sur l'écran de consentement. Sélectionnez ensuite cette option
externe à partir du type d'utilisateur. Simplement externe au laboratoire. Cliquez sur Créer. Il vous suffit ensuite de
remplir ce formulaire. Je dirai simplement qu'il s'
agit de l'e-mail d'assistance du fournisseur. Je n'ai pas de logo. Domaine. Ici aussi, tout simplement. Je suppose que rien
d'autre n'est obligatoire. Cliquez sur Enregistrer et continuer. Maintenant, la prochaine chose
que vous devez faire est de trouver votre URL de rappel. Nous n'avons donc pas à remplir les et
les
utilisateurs d'OwlTest pour le moment, il suffit de se rendre sur le tableau de bord Here
Supervisor. Ici. Cliquez sur l'option de configuration du projet, puis sélectionnez l'option API. Vous pouvez maintenant voir
l'URL du projet. Cliquez sur celui-ci, copiez-le. Et puis accédez à nouveau à
la console Google. Cliquez sur Informations d'identification.
Cette option. OK, oui, puis cliquez sur Créer
des informations d'identification
pour choisir l'ID client OT. Maintenant, le type d'application, je vais simplement choisir une application
Web. Puisque nous avons Android, iOS et Web Meeting. Maintenant, le nom sera flou. Super client Web. C'est alors important dans la redirection
autorisée, l'URI. La première base, c'est celle que vous avez copiée depuis le tableau de bord de la super
base. Ensuite, à la fin, n'oubliez pas d'ajouter
ces lignes qui sont barre oblique et un rappel point contre 1 point. Ce truc, tu
dois simplement t'en souvenir. Ensuite, vous devez
écrire ces lignes pour
qu' elles soient redirigées
vers notre application. Ensuite, cliquez simplement sur Créer. Après cela, nous
obtiendrons les informations d'identification. Copiez et collez les valeurs ici car vous en aurez
besoin plus tard. Ensuite, passez simplement
à l'authentification. Donc Bobby, parce que maintenant nous le sommes et nous allons utiliser ces
informations d'identification ici. Cliquez sur les fournisseurs,
puis recherchez Google. Et vous pouvez voir qu'il demande un identifiant client et un
secret client. C'est ça. Et voyez l'URL de redirection sous forme de rappel
slash v1 slash. Copiez maintenant cet identifiant client. Déclarez ici. Encore une fois, copiez l'état
du secret du client ici, puis cliquez sur Enregistrer. C'est ça. Nous avons
terminé toutes les étapes et avons correctement
configuré la
connexion à Google pour notre projet. Dans la vidéo suivante, nous travaillerons sur l'interface utilisateur
ainsi que sur la mise en œuvre. Merci
10. Implémenter une connexion Google: Maintenant, c'est l'heure. Comme tout est terminé, nous implémentons la connexion
à Google dans notre laboratoire Flutter. Tout d'abord, créons le
bouton sur la page d'accueil. Après ce bouton d'inscription. Simplement la ligne. Ensuite, nous avons des enfants. Et ces enfants. La première chose que nous aurons est l'expansion de la région. Et au sein de cette région élargie, nous aurons une division. Nous l'aurons. Comme toujours, vous pouvez modifier l'interface utilisateur
en fonction de la vôtre. Pour moi, il ne s'agit pas d'un tutoriel sur une très bonne
interface utilisateur, quoi que ce soit de ce genre. ensembles de gènes qui sont des enfants
liront le texte. Et puis encore une fois, j'ai un
dicton qui se répand je veux juste ce truc. Mais l'utilisateur sait
qu'il peut se connecter avec son
adresse e-mail ou qu'il peut directement se connecter. Ici. Vous pouvez simplement lui donner une const. Et je vais supprimer le séparateur
précédent. Celui-là. Si tu veux, tu peux le garder. Je veux juste ce
séparateur ici. Et maintenant. Après cette ligne, puis dramaturge, dessinez, appuyez
sur le bouton, l'icône et appuyez sur. Gardez-le comme ça. Étiquette. Devrions-nous alors faire de la musique avec Google. Ensuite, dans l'icône, j'aurai un réseau de points d'images. J'utilise simplement une image
réseau ici. Je voulais juste que
ce soit très simple. Et la hauteur de
cette image fera également D.
Et recherchez simplement n'importe quelle image
sur Google. Ensuite, le logo Google est transparent. Et je vais simplement copier l'adresse de
cette image
et la coller ici. Sauvegardez-le. Tu vois, ça a l'air décent. Maintenant, pour implémenter la fonctionnalité de
connexion à Google. Tout d'abord, créons
un nouveau bouton. Ce bouton n'est
pas un booléen. Connectez-vous à Google. Le chargement est appelé
faux, comme ceci. Ensuite, cliquez sur ce bouton de plan
et écrivez simplement si la connexion à
Google est vraie,
puis, comme d'habitude, affichez et écrivez simplement si la connexion à
Google est vraie,
puis, son indicateur de progression
circulaire. Et comme c'est déjà le
cas sur site, faites-en un évier. Et maintenant, nous allons écrire le code. La première chose que nous
ferons est de définir l'état. chargement de la connexion à Google
est égal à vrai. Ensuite, nous avons ce bloc «
try and catch ». C'est une syntaxe, une
syntaxe pour Google. Connectez-vous. Tout de suite. autoroutes où l'art danse à la
largeur des panneaux, comme celle-ci. D'accord. Dans ce fournisseur, écrivez
simplement provider. Tu vois, tu as beaucoup de fournisseurs. Je vais utiliser Google. Ensuite, ils importent une chose importante, c'
est le chemin direct vers ici. Nous devons d'abord faire cette vérification. C'est k is web, celui-ci. Donc, tout en haut, il y
aura un point de
base important, un point. est-à-dire que s'il s'agit d'un site Web
, ne le faites tout simplement pas, c' est-à-dire ne l'écrivez pas. Rls. Utilisez l'URL de redirection, qui est io point. Scoop, toujours. My Flutter, mon application la plus flatteuse. Connectez-vous, rappelez, comme ça. C'est notre écriture dont je
viens de me souvenir dans l'ordre profond des
URL de redirection et tout ça. C'est le seul code
acquis après cela, simplement dans ce drag, qui est catch block, n'
est-ce pas ? Échafaudage. Messager contextuel, ne pas afficher le contenu des snacks, des snack-bars. La prochaine étape, comme ça. Si vous le souhaitez, vous pouvez modifier la couleur d'arrière-plan en
couleurs L, accent rouge foncé. Et définissez l'état. La connexion à Google est
égale à fausse. Nous avons un code redondant. Il est temps de tester. Si j'y vais et si je passe à notre authentification
et à nos utilisateurs, ici, je supprimerai simplement cet utilisateur car j'utiliserai la connexion
Google avec
le même nom d'utilisateur. Maintenant. Nous allons le tester. Tout est enregistré. Oui. Continuons avec Google. C'est ouvrir un compte. Oui. Je vais le choisir. Il aurait dû se lire dirigé. Voyons pourquoi. Ici. Je suppose que nous avons la connexion à
Google, mais elle n'a pas été redirigée. Il doit y avoir un problème ici. Tu vois, il aurait
dû être réélu ici. Redémarrez K Phi ici,
rien ne se passera. Il vous suffit de supprimer cet utilisateur. Et dans les baux, fournissez
une configuration d'URL. Voyons ce qui
se passe si je supprime cet hôte local dans les URL de redirection directe de
l'UE. Laissez-nous voir. À mon avis. C'est la bonne. Je vais juste attaquer le cerf à nouveau. Sauvegardez-le. OK,
réessayons. Cliquez pour continuer avec Google. Et voyez. Je suppose que
vous n'avez pas pu comprendre pourquoi il a été
redirigé vers notre application. Mais j'ai dit qu'il y avait un problème. Je supprime simplement l'hôte local que vous localisez
des URL du rédacteur. Et pour l'instant,
tout va bien. Cela fonctionne très bien. Vous pouvez voir que Google est là ?
Eh bien, oui, c'est ça. Notre indication
est donc également terminée. J'espère que vous avez apprécié. Dans le module suivant, nous allons apprendre à utiliser base de données dans Super Base
et à Flutter dans la file d'attente.
11. Travailler sur l'interface utilisateur crud: Bonjour, bienvenue dans
cette toute nouvelle vidéo. Il est maintenant temps de commencer à en savoir plus sur les
bases de données dans Superbus. Superbus fournit une interface
utilisateur Web qui
nous permet de gérer et d'
interagir facilement avec notre base de données
relationnelle. Cette interface
fournit diverses fonctionnalités permettant
de créer et de modifier des tables, de gérer des données
et d'exécuter des requêtes SQL. Donc, ici, vous pouvez voir cet éditeur
SQL, allez-y. Le truc, c'est de superviser, vous devez définir vos
tables et vos colonnes à l'avance car vous pouvez commencer avant pouvoir commencer à y insérer
des données. Cela est dû au fait que Superbus est construit sur la séquence
Postgres, qui est un système de gestion
de base de données relationnelle. Et cela nécessite un schéma
prédéfini pour stocker les données. Alors ici, allez simplement là-bas, accédez à cet éditeur SQL. Ou si nous allons dans la base de données, voir
également ici, nous avons la même
chose, une nouvelle table. Cliquez simplement sur le nouveau tableau et maintenant vous donner un tableau, un nom. Je vais l'appeler « tâches à faire ». Maintenant, je vais désactiver
cette sécurité au niveau des lignes pour l'
instant et l'activer en temps réel. Parce que, évidemment, nous allons également
apprendre à utiliser les données
en temps réel. Maintenant, ci-dessous, vous pouvez voir qu' il existe deux colonnes
prédéfinies. C'est un identifiant et
créez un at créé. L'identifiant est réel. Générez automatiquement un identifiant
et vérifiez que ce principal est. Maintenant, voici. Cliquez simplement sur
Ajouter une colonne. Alors. De plus, je vais écrire le titre et lui donner du texte. Cela dit. Et le second écrira l'identifiant de l'utilisateur ,
car il est évident que nous
devons également stocker l'utilisateur. Et ici je vais l'utiliser. Ensuite, vous pouvez également
l'utiliser comme teaser. Mais la fonction Supervisor renvoie cette variable
utilisateur ou l'ID
utilisateur sous forme de chaîne. C'est pourquoi j'utilise de la ficelle. Et plus tard, nous devrons
apporter quelques modifications, ou vous pouvez également dire convertir, que nous le fassions à ce moment-là. Nous avons donc la colonne, nous avons le nom
et ce sera en
temps réel , puis cliquez sur Enregistrer. Oh Kay. Et si je vais à la table,
eh bien, éditeur également, je m'
assure que nous avons notre table. C'est perdre. Également. J'utilise
ce nouvel émulateur. C'est-à-dire que j'ai connecté mon véritable appareil car versions antérieures d'Android Studio
étaient très en retard. C'est pourquoi. Avant de passer à l'apprentissage des
opérations de base, nous allons d'abord travailler sur
certaines parties de l'interface utilisateur. Créez un nouveau fichier dans le
répertoire des pages. Alors joue bien. Créez une page, un point, point et un point, un point. D'accord ? Donc, dans la
page Create, le père importe simplement du matériel, puis le tue. Ils sont restés entièrement rigides en
nommant la page de création. Ensuite, la première chose que nous ferons, comme toujours, est de faire en sorte qu'
un booléen excluant
soit égal à faux. Et nous allons créer, il faut tout contrôler,
car évidemment si nous créons quelque chose, il y aura un
champ suivant impliqué. Et je vais l'appeler Title. Le contrôleur est égal au contrôleur
d'édition x. Comme ça. Maintenant, retournez simplement
une barre d'échafaudage. J'achète des obligations. Ensuite, créez des données. Puis dans le corps en ajoutant des liens
rigides et des idées selon lesquelles 15 ans et cet enfant ont une colonne. Discutons avec
ces enfants. Et disons X3. Et aussi, comme une seule date de publication
des textes, c'est pourquoi je n'
utilise pas ce formulaire et je vais laisser ce formulaire de texte
échouer en clé étrangère. Encore une fois, c'est très simple. Comme
la déclaration du contrôleur Dell, Const, input, declaration, int x. Le titre et la bordure. Donnons-lui une bordure, c'est
un contour dans la bordure du coffre. K. Après ce TextField. Donnez un peu d'espace à l'
aide de sa boîte de sa taille. I, puis bouton surélevé, Créer et le rendre constant. OK. Nous aurons cette page de création et nous la
verrons
certainement sur notre appareil. Mais d'abord, créons également
notre page d'édition. C'est similaire à la page de création, mais la seule différence est que
nous acceptons des données et les
attribuons. Contrôleur d'édition de texte. Il vous suffit de vous rendre ici. Importez du matériel. Page d'édition dynamique et rigide. Ici. Avec ce constructeur, nous
accepterons deux choses. Chaîne finale, données, int
final, identifiant. Ensuite, nous l'
accepterons simplement, comme nous avons édité cet ensemble de données. C'est ça. Maintenant, comme toujours, c'est pareil. Le booléen indique que
le chargement est égal à faux. Contrôleur d'édition. Le contrôleur va
faire le
contrôleur d'édition X comme ceci. Et maintenant, dans l'état d'initialisation, ce que nous allons faire, c'est dire que je leur ai
donné de la valeur aux données. Ce jeton est plus frais, scories, rigide ,
petit, rigide,
pas de données comme celle-ci. Maintenant,
passons à notre page de création et copions
simplement cet échafaudage. Échafaudage. Nous avons ici. Maintenant. Ce seront des données ajoutées. Le contrôleur est là. Ce sera un rendez-vous. C'est un rendez-vous. Je suis juste en train de réfléchir. Que pouvons-nous faire ? OK, faisons-le
ici comme ça. Si le chargement est égal à vrai. Si le chargement est vrai,
désolé, équilibré, au centre, Jane, indicateur de
progression circulaire. Ou bien j'ai une chronique. Avec cette colonne, disons que des enfants restent sur
les trottoirs. Poids,
infinité à deux points, hauteur. Mais je suis juste en train de créer
le bouton de mise à jour ici. Rien de grand. C'est comme
si on lui donnait toute la largeur. Bouton surélevé sur pression. Et l'enfant sera
parti le lendemain. Comme ça. Dans cette colonne. C'est-à-dire que la boîte de taille
donnera un peu d'espace
à l'aide d'une boîte d'une autre taille. Moi ensuite, puis un diviseur. Et enfin, un autre bouton
juste à cette fin de suppression. Car cet utilisateur ne peut supprimer que
depuis cette page. Const. Je peux, je
peux commencer à supprimer. Cette étiquette peut être constante. Ensuite, supprimez. Et donc du style. Donnons juste le style de Dan, couleur de fond, mon TDL, mon
état, ma propriété, un point. Ces autres codes, vous devez vous souvenir que ce n'est pas moi qui les ai créés. Et enregistrez-le. En termes simples. La seule différence entre
les deux pages est que nous
avons également un bouton
de suppression ici. Il suffit de tout enregistrer. Si vous souhaitez simplement
consulter cette page. OK, passons à Main.out. Et au lieu de pages d'accueil, envoyez-le pour créer une page et enregistrez-le. voyez, c'est notre page de création. Et si nous modifions la page, elle demande deux
arguments, une chaîne et un entier. String et sois bonjour. entier peut être deux. Si je l'enregistre. Et page de paiement. voyez, ce halo est
déjà renvoyé ici parce que nous l'
attribuons à l'état d'initialisation. Et cette mise à jour
prend tout l'écran. Ensuite, nous avons ce petit diviseur. Il s'agit du bouton Supprimer. Ça a l'air décent. Encore une fois,
remplacons-le par plus tôt. C'est la page d'accueil. Alors c'est tout. Dans la prochaine vidéo nous travaillerons sur l'interface utilisateur d'accueil, ainsi que sur la façon de créer, mettre en œuvre cette fonctionnalité, de
créer des fonctionnalités. Et Q.
12. Implémentation de fonctionnalité Créer: Bonjour. Nous avons maintenant une page de création
et une page d'édition prêtes. Il est temps de travailler
sur la page d'accueil et de créer des boutons pour
naviguer vers d'autres pages, ainsi que de travailler sur le
corps de l'ensemble. Très rarement, nous allons récupérer et
afficher les données créées. Alors allez à la page d'accueil. Ici. Donnons-lui un titre là-dedans, mais je vais juste écrire. Par la voie, c'est alors doter très haut. Importons,
créons une page, importons, modifions la page. Commençons à travailler
sur le corps ici. Et nous allons supprimer n. Nous
utiliserons un générateur de points en mode liste. J'espère que vous connaissez tous ces
widgets car ce sont là encore les bases de
Flutter. Je déteste le pistolet. Et pour l'instant, je ne
montre que des données factices. Et plus tard, nous remplacerons ces données par les
données qui en proviennent. Superbus, Item Builder, le texte, l'index, la chaîne et les données sont égaux à des données fictives. Et le numéro d'index. Nous allons montrer ces chaînes de données. Renvoie ensuite le texte de style liste. Données, puis suivi. Disons d'un bouton en forme d'icône. Et l'icône aura une const. Je peux, je peux commencer une annonce ici, je pourrai commencer à la modifier. Et donnons-lui une
couleur, des couleurs, du rouge. Et dans le système sur site,
naviguons. C'est Navigator Dot Push. Sur les ponts. Dans cette mise en page de
ma page TBL il y
aura du texte et nous l'enverrons sur la page
d'édition. Modifier les données n'est tout simplement pas
une variable de données et des idées indexées. Encore une fois, ce ne sont que des bêtises. Et la prochaine chose que nous devons faire est un bouton d'action
flottant créatif. Bouton d'action flottant. Enfant. Const, je peux, je peux
mordre , ajouter de la poitrine. Et à partir de là, nous en avons terminé. Nous allons accéder
au pont de création. Naviguez sur leur point, poussez. Ma page quotidienne,
page de mise en page ici. C'est ça Sauvegardons-le et jetons un
œil à l'application. Tu vois, ça a l'air
très décent en ce moment. ne fait aucun doute que ce sont des données factices, mais il est très simple
de les remplacer. Puisque
l'interface utilisateur est prête, il est temps de travailler à l'apprentissage des opérations de
certification, en commençant par la création de nos données
d'insertion dans Superbus. Il vous suffit donc d'aller sur la page Créer. D'abord. Je vais
vous donner un peu de syntaxe. Pour insérer un enregistrement, la syntaxe est très simple. Nous devons écrire qu'il s'agit d'une instance d'
autoroutes, que cette instance client. Puis de, de nous emmène. Quel est le nom de la table dans laquelle
les données vont être insérées ? Ici ? Tout simplement, par exemple nous avons des utilisateurs ou vous pouvez
dire que nous avons les tâches à faire. Ensuite, la commande est
simple, c'est-à-dire insérer, insérer. Et cette zone. Il s'agit d'un deuxième argument qui prend des données sous
forme de carte, notre paire de valeurs clé comme celle-ci. Supposons que nous ayons alors une valeur, la valeur moyenne, puis la date, puis la valeur. Comme ça. Il s'agit de la syntaxe
pour l'insertion. Et supposons que vous souhaitiez insérer
plusieurs enregistrements à la fois. Il suffit donc de les insérer en les
mentionnant. Dans une annonce comme celle-ci. Ensuite, de même,
il y aura une date de
livraison serrée et rentable comme celle-ci. C'est ainsi que nous pouvons insérer
plusieurs enregistrements à la fois. Et maintenant, supposons que
vous ayez inséré cette valeur et que
vous souhaitiez la récupérer immédiatement. Pour cela, ce que nous pouvons faire, nous pouvons utiliser une variable
qui est thêta égale à wait, comme ceci. Et à la toute fin, ajoutez simplement une sélection par points. Ici. Il récupérera les données insérées. C'est-à-dire que nous
obtiendrons la réponse dans la méthode précédente qui utilise directement wait et
sans utiliser le select, elle renvoie null en tant que réponse. C'est ça C'est ça Nous l'avons donc. Nous avons compris
comment insérer des données. Il est maintenant temps de mettre en œuvre
cette fonctionnalité de création. Le pire, c'est de créer une instance de supervision sur laquelle cette base de soupe est égale pour superviser ce client de démarrage d'
instance. Créons ensuite
une future fonction. Insérez des données. Comme ça. La première chose à faire
est de régler le chargement. Ensuite, nous allons encapsuler le code
dans un bloc try catch. Ici. La première chose dont nous avons besoin
est d'obtenir le nom d'utilisateur. Et c'est ce que nous pouvons obtenir grâce à la méthode
artistique qu'est Superbus, cet identifiant numérique utilisateur actuel. Il dit donc maintenant
qu'il peut être nul. Mais comme nous savons que l'
utilisateur est déjà authentifié, nous aurons cet opérateur car nous savons avec certitude
qu'il y aura une valeur. Écrivons maintenant cette syntaxe. Il provient de Todos Dot Insert. Non la valeur sera dy del, del controller, point, txt, ID utilisateur. Allons-nous utiliser cette idée ? OK, ici. Une fois que tu l'as fait, c'était une erreur de ma part. Ensuite, je vais simplement
naviguer et apparaître. C'est-à-dire Navigate, Gate the Pop. Et maintenant, faisons cette capture. Juste à des fins de débogage, j'apporterai des données. Insertion de données. Des jours de remerciement. Définit l'état si
le chargement est égal à faux. Et le cuir chevelu pour Messenger n'affiche pas le contenu du snack-bar. Puis les choses ont mal tourné. Quittez cette grotte. C'est à mon tour de disposer de moi. Disposons que
je dise au contrôleur de supprimer, de superviser
de supprimer. Il y a donc du sodium, il n'
y a pas de fuite de mémoire. Ici. Utilisez simplement le
ternaire comme const,
Center, Cooler,
Progress Indicator. Et le Calder sur site. Insérez des données comme celles-ci. C'est ça Nous allons maintenant tester cette
fonctionnalité. Si je clique sur oui. Et maintenant, si j'
écris Barbies
et que écris Barbies je clique sur Créer, alors c'est navigation
que la fenêtre
contextuelle s'appelait. Allons donc à la
base de données et actualisons-la. voyez, nous avons supervisé l'
apprentissage des données, nous avons le nom d'utilisateur. L'insertion de données
fonctionne donc parfaitement. Dans la vidéo suivante, nous
allons découvrir comment récupérer ces données et les
afficher dans notre application. Merci
13. Implémenter la fonctionnalité de lecture: Puisque nous avons
inséré des données avec succès, nous allons
maintenant apprendre
à récupérer ces données. Ainsi, power-based nous
fournit une
méthode sélectionnée pour récupérer
des données à partir d'une table. Accédez simplement à la page d'accueil. Je vais simplement écrire l'
index pour sélectionner les données. Et ici, c'est très
simple. C'est un super chemin depuis nom de la
table
censé perdre et dire gauche. C'est donc la
méthode que nous allons utiliser. Cela récupérera tous les enregistrements de ce jour, ce qui vous fera perdre. Également par défaut. Ainsi, la fonction basée sur la puissance renverra
un maximum de milliers de lignes. De toute évidence, il s'agit d'un grand nombre de données. Mais si vous en demandez plus, ce paramètre peut également
être modifié. De plus, cette syntaxe
renverra toutes les colonnes. Supposons que c'est
un nom pour parler de l'âge. Mais si vous le souhaitez, mais que se passerait-il si nous n'avions besoin
que d'une colonne spécifique ? Il dit que c'est juste le nom
de tous les enregistrements. Donc, ici, je vais simplement écrire
ici, même dans la sélection. Il ne renverra donc que
la colonne de titre. C'est ça. Ces deux-là, tu
dois te souvenir. C'est une syntaxe très basique. Maintenant, écrivons une
fonction pour récupérer des données. Ce sera un futur, et il finira par renvoyer
une liste. Appelons-les données lues, et ce sera un récepteur. C'est très simple. Il suffit d'écrire. Le résultat final est égal à attendre. Les autoroutes de toutes les choses à faire. Ne sélectionnez pas cet ensemble et ne renvoyez pas ce
résultat. Rien d'extraordinaire. Maintenant qu'il s'agit d'un
futur dans le corps, nous allons utiliser un futur constructeur. Tout d'abord, je vais simplement le couper parce que
nous allons le coller. Le futur sera le futur. Il possède alors deux propriétés. Le futur sera la lecture,
les données et le générateur. Cela nous donne un contexte, ainsi qu'un aperçu du puits. C'est-à-dire que ce sont les données
provenant de la base soma. Maintenant, nous allons d'abord, si Snapshot Dot a été ajouté, tout d'abord, nous écrirons
si quelque chose ne va pas, renvoyer le centre de l'enfant, point
instantané, le point deux flux. Écrivez simplement ceci directement. Ici. Je vais renvoyer un indicateur de progression
circulaire pour enfants du Const Center. C'est pourquoi il est dans l'état de chargement qu'
il essaie de récupérer. Nous aurons un
indicateur de chargement sur cet écran. Et si Snapshot contient des données ? Encore une fois, cette syntaxe
provient de. Le futur ne se régénérera pas. Ce n'est pas une syntaxe très éloignée. Si le snapshot contient des données, supposons que le superviseur ait
renvoyé quelque chose, d'accord ? Et aucune donnée n'a été insérée. Dans ce cas. Je montre simplement un document rigide où il est renvoyé
et où il est écrit. Aucune donnée, chaque étiquette comme celle-ci. Et si la longueur est
supérieure à zéro, renvoyez une liste. Voir le point n ici. Le nombre d'éléments sera composé d'instantanés, données par
points et de longueur de points. C'est le nombre de personnes qui
vont venir. Créez simplement ce
nombre de widgets. Et l'article apprendra. Il fournit des contextes et un index. C'est un index. Et maintenant, je
vais revenir à cette
vue de liste, d'accord ? Je vais retourner cet article. Dans ce générateur d'objets. La première chose à faire est que j'aurai une variable appelée var data, snapshot data et cet index. Vous vous souvenez donc que
c'est sur la carte. Il s'agit d'un type de données cartographiques. Maintenant, je n'ai plus besoin de
ces données factices. Le nombre d'articles
sera sera correct. Je suppose que j'ai commis
cette erreur ici. Je dois faire en sorte que la vue en liste supprime simplement simplement cela. Voyons quelles sont les données disponibles. Maintenant, je suppose que tout va bien. Le nom de la colonne est titre. Et ce que nous envoyons, c'est un index. Il s'agira d'un
identifiant uniquement, et non d'un identifiant utilisateur. N'oubliez pas, car id est l'identifiant de ligne que nous voulons
ajouter et il est unique. Le nom d'utilisateur sera le même
pour toutes ses données. Kay ? Voyons s'il y en a une, s'il y a une erreur ou si
tout fonctionne parfaitement. Apprenez à superviser, cela
provient de la base de données. Et il y avait aussi un
indicateur de chargement. Enfin, nous sommes en mesure de
créer ainsi que les données. Dans la vidéo suivante,
nous en
apprendrons davantage sur
la récupération de données.
14. Filtres et modificateurs: Bonjour. Dans cette vidéo, nous allons
apprendre à filtrer nos données. Notre application récupère donc toutes les données. Mais dans la plupart des situations
réelles, nous voudrions uniquement que l'
utilisateur lise ses propres données. Nous permet de renvoyer uniquement les lignes qui répondent à
certaines conditions. Les filtres peuvent également être utilisés avec d'autres
méthodes telles que la sélection, mise à jour ou la suppression. Ces choses-là, nous
les exécuterons plus tard. Maintenant, lisons ou comprenons
certains filtres qu'il contient. Nous
allons comprendre que le premier est
égal à celui-ci récupère toutes les lignes dont la valeur de cette colonne
correspond exactement à la valeur spécifiée. Tout simplement. C'est alors comme ça, c'est super loin. Supposons que nous ayons cette
table appelée utilisateurs. Ensuite, nous allons sélectionner, cela récupérera tous les utilisateurs. Mais si nous lisons .eq, c'est égal. Et c'est-à-dire qu'une colonne de nom
doit être égale à cette valeur. Il récupérera donc en direct
cet utilisateur spécifique. Et ce nom est le nom de la
colonne du couloir de la mort. Et c'est la valeur
qui doit être égale. Cela équivaut donc au filtre ND. N'oubliez pas que cela équivaut à, eh bien, nous utilisons beaucoup de temps. De même, nous n'avons pas non plus d'
équivalent pour filtrer. Il extrait les lignes dont la valeur sur cette colonne indiquée
ne correspond pas et correspond à la valeur spécifiée. Donc, ici, nous pouvons demander,
supposons qu'il s'agisse d'une syntaxe provenant des utilisateurs point et E, q n'étant pas égal à, disons ici, nom, et non égal à. C'est vraiment une aide. Donc, à part
cette ligne en particulier, il récupérera tout. Parfois, vous pouvez en avoir besoin, cela dépend de
votre application. Alors nous en avons une excellente là-bas. Ensuite, le filtre récupérera toutes les lignes dont la valeur sur cette colonne spécifiée est
supérieure à la valeur spécifiée. Supposons donc que vous vouliez tous les utilisateurs âgés
de plus de 18 ans. La syntaxe est donc la suivante. De la part des utilisateurs. Sélectionnez les options ci-dessus. Je pense que j'ai oublié de
sélectionner la déclaration ici. Sélectionnez. Et celui-ci. Nous ne sélectionnons pas GT supérieur au nom de
la colonne Allons-nous vieillir ? La valeur est 18, donc
la valeur de ces lignes ne serait pas entrée dans 18. Et les autres champs
supérieurs à sont égaux. Pour toutes les lignes dont
la valeur dans cette colonne de
date de séjour est supérieure ou égale aux valeurs spécifiées. Donc, par exemple à partir de users select.gt. Supposons qu'il y ait une colonne d'
abonnés et amène ou obtienne
simplement les utilisateurs dont le nombre d'abonnés
est supérieur à 10 000, impair et supérieur ou
égal à 10 000 décès. De même, nous avons moins de, c'
est-à-dire que le LTE est
inférieur ou égal à ? Je vais juste glisser ici. Inférieur à, car ce d n est inférieur à égal. De la même manière que le LTE. Vous pouvez simplement le
comprendre avec le même exemple. Alors quelques autres. C'est-à-dire que la colonne
correspond à un modèle. Donc, ici, récupérez toutes les
lignes dont la valeur colonne
sous-estimée correspond à
celle fournie à tour de rôle. Et n'oubliez pas que c'est sensible aux
majuscules et minuscules. Donc, cette affaire envoie Dave, nous l'écrirons comme des super
moyens pour les utilisateurs de sélectionner. Comme ici. Nous allons écrire la colonne des noms
et quel est ce modèle ? Opposez-vous. Il devrait y avoir un lac, le bord et le sous-marin. Je portais ce nom. Le rocher portera
ce nom. J'espère que vous avez compris
avec cet exemple. De même, nous avons une
colonne qui correspond à une majuscule,
une colonne qui ne fait pas la distinction majuscules/minuscules. Si modèle. Ici, il sera
agréable de se séparer. Les utilisateurs sélectionnent. Moi, comme ici, c'est insensible. Si vous l'avez écrit en minuscules, cela
apportera également la même chose. exemple, si vous venez de dire
THE en bas, ce n'est pas une majuscule, alors cela fera également
apparaître cette ligne. Comme ça. Il y en a d'autres, mais je vais vous dire la dernière. Cette colonne se trouve dans l'ADA, se trouve dans le tableau. Il extrait donc toutes les
lignes dont la valeur dans cette colonne se trouve soit dans la
liste de valeurs spécifiée. C'est comme si super pouvait
commencer par les utilisateurs, sélectionner puis NE PAS ENTRER. Et soulignez. Ensuite, le statut se trouve
soit en dessous. Donc, que cette valeur soit
hors ligne, en ligne ou hors ligne, il même en ligne ou hors ligne. Si l'une de ces valeurs est présente,
apportez-la. De même, il
existe quelques autres sous-éléments, tels que les colonnes contiennent, chaque élément contenu
par le filtre de valeur répond à au moins une condition. Tu l'as fait. Ces
choses-là. Tu sais lire. Vous pouvez en savoir plus sur les autres dans
la documentation officielle. heure actuelle, nous nous
concentrerons davantage sur l'égalité de deux. Et puis nous avons les modificateurs. Il y a du travail au niveau des lignes. Ils nous permettent de
renvoyer des lignes qui répondent certaines conditions
sans modifier la forme des lignes. modificateurs sont tout ce qui
ne correspond pas à cette définition, ce qui nous permet de modifier le
format de cette réponse. C'est-à-dire des limites ascendantes et
descendantes et tout ce
genre de choses. N'oubliez pas que les modificateurs doivent
être spécifiés après le filtre. C'est-à-dire s'il y a un filtre
après ce modificateur de points. Et
voyons, comprenons le modificateur. Ici. Cela change simplement
l'ordre des réponses. Ce sont de super moyens, pas de la part des utilisateurs. Sélectionnez. Ici, nous ajouterons colonne de numéro de commande à
point lors de l'envoi. L'envoi ne doit pas être faux. Donc, par défaut, l'
ordre croissant est vrai. Nous pouvons le rendre faux. Et puis cela viendra dans
l'ordre décroissant. Et puis nous avons limité
ce modificateur de requête. Cela limite la quantité
de données provenant. Les utilisateurs. Sélectionnez une limite. Apportez donc de nouvelles données, ou supposez que vous souhaitiez y mettre fin sous la forme d'une analyse comme
celle-ci. C'est bien comme ça. Vous pouvez comprendre que
c' en est un peu plus. Récupérez la requête
sous la forme d'une seule ligne, mais ce n'est pas nécessairement le cas, ces deux sont nécessaires pour le moment. Il est donc temps d'appliquer ce que
nous avons appris maintenant, à savoir environ trois douzaines de modificateurs. Plus tôt dans notre application, nous avons récupéré tous les doublages,
mais maintenant, à l'aide d'un filtre, nous allons récupérer uniquement
les données téléchargées par un utilisateur en particulier qui
sont authentifiées. De plus, nous modifierons
l'ordre et afficherons le dernier dessin en haut. Alors d'abord, écrivons maître. Et encore un. Essayons de
comprendre où vous vous demandez pourquoi
il ne
s'affiche pas car pour le moment,
nous devons l'actualiser car ce n'est pas en temps réel. Vous voyez, maintenant, après le redémarrage, il nous montre les trois données. Maintenant, nous voici dans le futur. Ici, dans la fonction future, simplement après les points,
sélectionnez le point droit égal. Le nom de la colonne est l'ID utilisateur. Et le nom d'utilisateur doit être identique
à celui à des autoroutes. L'identifiant utilisateur actuel, comme celui-ci, et la
commande doivent être des identifiants. L'ordre croissant est égal à faux. Maintenant, si je le sauvegarde,
il a changé. Maintenant. Nous avons toutes les
données les plus récentes en haut. J'espère que vous avez beaucoup
appris aujourd'hui. Dans la vidéo suivante, nous travaillerons sur la
fonctionnalité en temps réel de la file d'attente.
15. Implémenter une base de données en temps réel: Bonjour. Nous sommes maintenant en mesure d'ajouter des données, mais l'utilisateur doit redémarrer son écran pour
refléter les modifications. Ce n'est pas une bonne expérience. Nous allons donc
apprendre à utiliser les streams plutôt que les futures afin d'afficher
les mises à jour en temps réel. Alors, qu'est-ce que la syntaxe d'abord, nous allons vous montrer une syntaxe qui est une base de données en temps réel. Soit vous pouvez utiliser directement
ce qu'ils supervisent. À partir de là,
nous appellerons utilisateur, supposons ensuite stream, stream. Et n'oubliez pas que le flux prend une liste de
colonnes clés primaires comme argument. Il faut donc un E primaire, et il suffit d'écrire ID. OK, ici. Alors écoute. Et dans cette écoute, trouverez une liste de données et vous pourrez faire ce que
vous voulez avec ces données. Fais quelque chose, d'accord, ici, à l'intérieur de toi,
tu peux faire quelque chose. Mais que faire si vous souhaitez
écouter en utilisant Stream Builder ? Ainsi, en utilisant le générateur de flux, vous pouvez ensuite l'
attribuer directement ici, comme ceci. Supposons qu'un
flux existe. Découpons-le. L'argument est là. Et
ici, vous pouvez simplement écrire des autoroutes que
les utilisateurs diffusent. C'est ici, comme
d'habitude, clé primaire. Dans ce cas, le capital. C'est juste que je ne veux pas m'
embêter. C'est la syntaxe. Nous utiliserons cette syntaxe car nous utilisons
StringBuilder. Si vous souhaitez également écouter
directement la supposition dans l'état
init, vous pouvez implémenter la ligne to15
ci-dessus. La première chose à faire est sans aucun doute que nous pouvons écrire directement ici. Mais je vais juste
le rendre complètement rigide. Et ici, je vais écrire un flux variable
et un lead car je vais attribuer leur
valeur à chaque état. Et il contient cette liste
de valeurs dynamiques. Et nous allons simplement écrire un flux de
lecture comme celui-ci. Et puis dans l'état d'initialisation, je vais faire en sorte que le flux de lecture soit
égal à Supervision Dot Forum. Pour perdre le stream. Voir la clé primaire dedans
demandant, je vais écrire l'identifiant. Ensuite, la
colonne à points égaux correspond à l'ID utilisateur. Et la valeur sera un identifiant utilisateur supervisé
ou non actuel. Et de même, nous avons une colonne de filtre
modificateur. Allons-nous identifier l'ordre croissant faux ? C'est ça. Nous avons cette chaîne. Et maintenant, nous allons simplement
le changer en trois millimètres. Ce sera un flux et
ce sera un flux lu. Comme ça. C'est ça. Redémarrez simplement. Maintenant, vérifions si
cela fonctionne ou non. Maintenant, si phi sine n, masse
droite, que reste-t-il ? OK, j'ai eu
un problème avec les clés physiques. Ce n'est pas une erreur, c'est juste un mot clé
non plus. Rien d'autre. Nous allons simplement procéder comme ceci et cliquer sur Créer. Vous voyez, huit a été mis à jour automatiquement puisque nous
utilisions des flux plus tôt, nous avons dû actualiser ou
redémarrer l'application. De toute évidence, c'est
plus convivial. Et la plupart des applications nécessiteront
des applications messagerie
Stream Slag ou quoi que ce soit d'autre,
des notifications et tout le reste. Eh bien, j'espère que vous avez apprécié découvrir la base de données en temps
réel. Dans la vidéo suivante, nous travaillerons à la mise à jour
et à la suppression de nos données. Merci.
16. Mettre à jour et supprimer les fonctionnalités: Il est maintenant temps d'apprendre
à mettre à jour des données existantes. Le superviseur nous fournit, à jour mon tour et doit toujours être
associé à des filtres. Passons à la page d'édition. Ici. Découvrons la fonctionnalité de
mise à jour. Donc, la syntaxe est la suivante : soit vous
pouvez commencer tout
de suite par le nom du premier jour. Supposons que les utilisateurs datent. Maintenant, envoyez ces données. Vous souhaitez le mettre à jour
sous la forme d'une carte. La valeur clé, c'est le nom. Je veux que ça change
pour Elon Musk. Ensuite, vous
devez écrire ce match, car nous ajouterons ici la condition des
données à mettre à jour. Donc id doit être égal à dix. Mettez donc à jour les données. C'est l'identifiant de qui ? Étrange ? Vous avez une autre syntaxe. Pour mettre à jour. Vous pouvez utiliser n'importe laquelle de ces deux mises à jour utilisateur. C'est donc le même nom, mis à jour en Elan Musk. Mais au lieu de correspondre,
nous utiliserons égal. C'est ça. Et ici, ce sera comme une pièce d'identité, plus calme qu'
autrement sous forme de carte. N'oubliez pas qu'
il s'agit d'une différence entre les deux syntaxes. Donc, comme vous le souhaitez, utilisez ce D, car
vous risquez d'être confus plus tard si vous voyez du code
d'application
et vous penserez :
« D'accord, nous
n'avons appris que ce mot clé, comment il est utilisé ». C'est pourquoi. Il vous suffit maintenant de l'
implémenter dans notre application. Ici. Tout d'abord, ayez une
fonction client
superviseur . À l'échelle du futur, ce n'est pas le cas. Il ne retourne rien. La synchronisation des données. Ici, j'écrirai si le
texte du point du contrôleur de titre est égal à null, alors s'il n'est pas égal à null, alors n'effectuez que
cet état défini. Le chargement est-il égal à vrai ? Attraper. Dans ce sec,
tout de suite. Ce n'est probablement pas par ruse. Pas de mise à jour. La valeur est del, mettez à jour
la valeur du titre. Contrôleur Del, point,
texte et correspondance. Ce que nous devons égaler. Identifiant. L'identifiant est un identifiant
à points rigides comme celui-ci. Et une fois que c'est fait, utilisez simplement Navigator, pas pop. On va juste ne rien y faire exploser. Comme nous utilisons des flux, il sera certainement
mis à jour en temps réel. Ici. Si quelque chose ne va pas, a
est égal à faux. Et un échafaudage
de contextes, de points, snack-bar, écrira que
quelque chose s'est mal passé. Et nous allons vérifier si c'
est bien ce qu'est l'en-tête. Ok, enregistre-le. Et j'utiliserai également
la fonction de destruction. Ils éliminent les points de contrôle. C'est une bonne pratique
que le soja ou moins ne
soit pas obligatoire pour
ce projet fictif. Mais nous aimerions toujours
faire de notre mieux. Maintenant, dans cette mise à jour, il suffit d'
attribuer le moteur,
c'est-à-dire celui-ci, sur site, et de l'enregistrer. Nous allons tester l'application. Si je passe à la troisième,
c'est Master Flatter. Et ils rassemblent Flutter et
ça et cliquent sur Mettre à jour. Tu vois, rien ne s'est passé. Voyons s'il y a une erreur. L'ampoule est Dot
Todos Dot Update. Je pense qu'il aurait dû être mis à jour. Eid Early Title Controller
Dot Decks Match. Voyons nos données. OK. Nous avons Maître
Florida et Dart ici. Mais pourquoi n'a-t-il pas été
mis à jour en temps réel ? Si je le rafraîchis,
il est là mais cela ne
devrait pas être le cas. La fonction de mise à jour fonctionne. Essayons-le à nouveau. Mise à jour. Dis d'accord, maintenant ça marche. Je n'ai pas eu un tout
petit problème par erreur, modifié la programmation de Master Flirt et je l'ai mise à jour. Il fonctionne parfaitement. Nous avons également compris la fonction de
mise à jour. Maintenant, la seule chose
à apprendre est de savoir comment supprimer des données de Superbus. Superbus nous offre également la
fin de ma troisième place. C'est très simple, comme la méthode de mise à jour, et doit
être combinée avec des filtres. Et nous pouvons utiliser
match ou égal. Donc, ce que je veux dire,
c'est supposons que nous ayons cette fonctionnalité différée. La syntaxe est simple. Des super moyens de la part
des utilisateurs, pas de retard. Ensuite, assurez-vous d'
avoir ce match ou un équivalent. Bien que j'aie cette correspondance ici, id est égal à dix, comme ça. Implémentons une fonctionnalité de
suppression. Je vais simplement le copier, le mettre à jour et le coller. Je vais écrire supprimer. Je n'ai pas besoin de
cette déclaration. Disons que le chargement
doit être vrai. Ici. Attends, ça ne devrait pas être le cas. Supprimer. C'est un
Superbus lourd de Todos Dot Delayed. Et nous
avons directement ce numéro de match. Et nous aurons, après
cela, nous éclaterons. Ou si vous avez une erreur liée aux champignons, ils l'affichent
peut-être
dans le snack-bar et l'attribuent simplement dans
le bouton surélevé. Des données quotidiennes comme celles-ci, puis enregistrez-les. Testons cela également. Je vais supprimer le
premier, Mastermind Stack. Il est en train d'être supprimé. Si nous consultons les données de notre base de données, pour les données, si je les actualise,
il y en aura trois. Nous avons donc réussi à
comprendre comment créer,
lire, mettre à jour et supprimer des données. J'espère que vous avez aimé
apprendre jusqu'à présent. Dans la vidéo suivante, nous
allons apprendre quelque chose de nouveau. Ils prêtent un entraînement.
17. Activer la sécurité des niveaux de rangée: Bonjour, bon retour. Aujourd'hui, nous allons découvrir un nouveau concept qui est
la sécurité au niveau des lignes, également connue sous le nom de RLS. Rls est 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. Dans Superbus, nous pouvons utiliser RLS
pour restreindre les lignes de
données visibles par un utilisateur qui sont modifiées 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. N'oubliez pas non plus que le comportement
par défaut après l'activation de la
table bidirectionnelle RLS est que, après avoir dîné, elle refuse tout accès l'utilisateur
soit
authentifié ou non. Jusqu'à ce que nous parlions de nos politiques. Chaque politique est attachée à une table et sa
stratégie est exécutée. Chaque fois que vous accédez à une table, vous pouvez simplement les considérer
comme l' ajout d'une
clause where à chaque requête. La table peut avoir
différentes politiques IRLS. Peut-être que vous voulez qu'une table soit produite, d'autres peut-être pas. C'est donc à vous de décider à quelle table
vous souhaitez donner accès. Cela suffit donc pour le Curie. Activers-le. Accédez au tableau de bord de Superbus, accédez à notre action. Ensuite, vous pouvez consulter les politiques ici. Ensuite, il est mentionné que
le RLS est désactivé. Il suffit donc de cliquer sur Activer RLS. Oh, d'accord. Alors maintenant, si nous redémarrons notre application, nous constaterons qu'
aucune donnée ne s'affiche. Voyons voir, aucune donnée n'est disponible. Nous devons rédiger des politiques. Et les politiques nous
permettent essentiellement de spécifier qui a accès à quelles données et quelles actions
peuvent être effectuées sur ces données. Nous devons rédiger des politiques
pour toutes les opérations de base. C'est-à-dire créer, lire,
mettre à jour, supprimer. Et c'est très simple. Cliquez sur la nouvelle politique
dans ce tableau de tâches. Après cela, vous
aurez deux options. Nous allons choisir l'option Commencer
rapidement pour le moment. Pour une option plus avancée, vous pourrez également la voir plus tard. Il vous suffit de cliquer ici. Alors. Cela nous donne des politiques. Mais tout d'abord, je
voudrais vous dire quelles politiques je souhaite avoir
pour cette application. C'est-à-dire pour notre application Todos. De plus, les utilisateurs ne doivent
accéder ou lire que leurs propres données. Cela signifie que la colonne ID utilisateur
dans la super base doit être égale à l'idée
de la personne qui envoie la demande.
C'est la première chose à faire. Deuxièmement, tous les utilisateurs doivent être en mesure de créer des données s'
ils sont authentifiés. Ainsi, quand il
s'agit d'insérer, d'
insérer, tout le monde est autorisé. Juste ce jour-là, ils
doivent être authentifiés. Et maintenant, pour mettre à jour ou supprimer, les utilisateurs devraient pouvoir mettre
à jour
ou supprimer leurs propres données sur lead, c'
est-à-dire comme ça. Lisez la politique. La colonne
ID utilisateur doit être égale à l'idée de la personne qui
envoie la demande. C'est ça Maintenant, encore une fois, revenons à ce modèle. Cela nous donne quatre options. Tout d'abord, il
lira l'accès à tout le monde, puis activera l'accès par insertion
pour les utilisateurs authentifiés sur. Aujourd'hui, les
utilisateurs peuvent accéder à un bit en fonction de leur
e-mail et de leurs années 40. Et il a créé un accès de suppression pour les utilisateurs en fonction de leur identifiant utilisateur. Nous l'utiliserons, c' est-à-dire un accès basé sur
l'utilisateur. J'ai créé ce modèle nous l'utiliserons et
le modifierons pour notre commodité, utilisez
simplement ce modèle. Maintenant. Il nous demande des choses. Le premier est le nom de la politique. Je vais simplement écrire « activer et lire l'accès » pour les utilisateurs
en fonction de leur identifiant. Alors. Opération autorisée, je
vais sélectionner celle-ci. Et n'oubliez pas que vous pouvez faire deux choses, mais que vous ne pouvez pas faire deux choses. C'est ici,
une seule à la fois. Ensuite, la cible augmente, il suffit de la
laisser par défaut à tous, car l'utilisateur
doit évidemment être authentifié. Maintenant, en utilisant l'expression. Chacun devrait, nous devrions avoir un
identifiant égal à l'identifiant de l'utilisateur, d'accord ? Cet ID utilisateur est donc le nom de
cette colonne, et l'identifiant r point signifie la personne
qui envoie la demande. Maintenant, si j'essaie de cliquer sur Enregistrer, cela montre qu'un adder
n'a pas réussi à créer de fonction. L'identifiant étrange n'existe pas. Cela ne devrait pas être comme ça. Et il y a également eu
une autre erreur. Mais attendez, je vais le refaire. Voir ici s'il en va
de même si j'écris, lis l'accès. Et si je venais de sélectionner ceci. Maintenant, si j'écris, je passe en revue, politique
sûre et que je
vois maintenant pour créer un opérateur
n'existe pas. Vous, les UUID, passez à Tech puisque, puisque nous avons mentionné l'identifiant utilisateur, cette valeur
en tant que texte est supervisé, souvenez-vous que
sa valeur est du texte. Donc, soit vous pouvez modifier cet entier de type deux de
colonne, soit effectuer cette modification juste pour vous assurer que cela
fonctionnera comme suit. Maintenant, si je clique sur
Réviser et enregistrer politique, la politique a
été enregistrée avec succès. Activez donc l'accès en lecture pour
les utilisateurs en fonction de l'identifiant utilisateur. Voyons si notre application
fonctionne ou non. Nous pouvons désormais accéder à nos propres données. Nous l'avons fait avec succès. Ils ont tendance à lire la
politique d'accès à notre table de base de données. Dans la vidéo suivante,
nous allons simplement écrire la politique d'insertion, de
mise à jour et de suppression. Et Q.
18. Rédaction de politiques de CRUD: Bonjour. Nous devons maintenant mentionner
cette politique d'insertion. Et pour cela, nous
allons à nouveau cliquer sur nouvelle politique. Alors lancez-vous rapidement. Et ici, nous allons
choisir le modèle, puis nous allons
insérer un accès permettant aux utilisateurs
authentifiés d'utiliser
uniquement cette table. Ici. Nous n'avons rien
d'autre à faire. Cliquez ensuite sur Révision
et sécurité de la politique. Cela dit, nous avons lu, nous avons inséré. Maintenant ou mettez à jour. Nous utiliserons à nouveau l'accès
en fonction de l'identifiant utilisateur, c'
est-à-dire ce modèle et cette date pour les utilisateurs. Et ici, je vais cliquer sur mettre à jour. Cela nous donne un autre
champ qui est, qui sera le même. Et encore une fois, comme je l'ai dit,
comme c'est une chaîne, je dois la convertir en UUID, la copier
et la coller ici. C'est ça. Cela signifie simplement toute mise à jour sur les utilisateurs
en fonction de leur nom d'utilisateur. Révision, politique sûre. D'accord. Passons maintenant à la dernière, savoir la nouvelle politique,
hebdomadaire ou différée. Maintenant, c'est comme activer l'accès
pour les utilisateurs en fonction de leur identifiant. Utilisez ce modèle. Tout va bien. Tout simplement celui-ci. N'oubliez pas
que vous n'avez pas à
écrire cet UUID si vous avez
mentionné la colonne, c'
est-à-dire les
noms de ligne ou la colonne sous forme d'entier et non de chaîne
dans la base de données. C'est ça. Retardé K. Cliquez sur Réviser et sécuriser la politique. Nous avons donc toutes les
politiques quand Chen, n'est-ce pas ? Alors maintenant, notre application
fonctionnera parfaitement. La sécurité au niveau des lignes est
une chose très fondamentale, mais très, très importante. J'espère que vous avez compris que lorsque nous créons des applications
réelles, ce
sont toutes les fonctionnalités nécessaires. La sécurité est ce dont nous aurons besoin
dans notre application. Alors c'est ça. Pour ce concept. Dans la prochaine vidéo, nous
allons commencer à travailler sur. Donc, stockage basé sur l'alimentation, file d'attente.
19. Configuration de stockage: Bonjour, bon retour. Nous avons donc découvert les bases de données
d'authentification et
la sécurité au niveau des lignes. Enfin, il est temps de
comprendre comment utiliser le
stockage dans Supervision. Dans le monde d'aujourd'hui,
le contenu est roi. Ensuite, vous regardez les applications de réseaux
sociaux ou le commerce électronique
partout où vous
trouverez ces images et
vidéos. C'est donc le moment. Nous apprenons également à télécharger des
fichiers vers notre espace de stockage. La première chose à
faire est de créer un nouveau compartiment. Ici, vous pouvez voir que le bucket est un conteneur dans lequel
les fichiers sont stockés. Chaque compartiment est
associé à une URL unique, qui peut être utilisée pour accéder
aux fichiers qu'il contient. Chaque compartiment peut disposer de son
propre ensemble d'autorisations, ce qui vous permet de contrôler qui
peut y lire et y écrire. Tout comme RLS. Lorsque vous chargez un
fichier dans un compartiment, lui est automatiquement attribuée une URL unique
lui est automatiquement attribuée, qui peut être utilisée pour accéder
au fichier à tout moment. Cliquez donc simplement sur
Créer un nom de compartiment. Je vais simplement écrire des images d'utilisateurs. Rendez-le public afin que nous puissions y accéder plus tard. Nous parlerons également des
valeurs mobilières,
afin qu' il n'y
ait pas autant de problèmes. Nous avons donc maintenant ces images d'utilisateurs. Ce que nous avons également pour écrire des
politiques, tout comme nous l'avons appris
dans le sexe des bases de données et tout comme nous l'avons appris
dans le sexe des bases de données et à
propos des politiques ou des compartiments, nous pouvons configurer des autorisations qui contrôlent qui peut y
lire et y écrire. Par exemple, vous pouvez
configurer un compartiment
accessible uniquement aux utilisateurs
authentifiés ou ouvert au public. En outre, vous pouvez définir politiques de
violation
qui
suppriment automatiquement les fichiers après un
certain temps. Maintenant, cliquez sur Nouvelle politique. Il vous suffira de
cliquer sur nouvelle politique. Ensuite, nous utiliserons la
fonction de démarrage rapide. Et cela nous donne cinq options. Autorisez l'accès aux
images JPEG dans un dossier public. Vous donne accès uniquement
à leur propre
nom de dossier de premier niveau. En tant qu'UID. Donnez aux utilisateurs l'accès à un dossier sur lead à des utilisateurs
authentifiés. Accordez l'accès à un dossier
imbriqué appelé admin uniquement à un utilisateur spécifique. Donnez accès à f phi à un utilisateur. Nous utiliserons donner aux utilisateurs
l'accès uniquement au leur. C'est le nom du dossier de niveau supérieur, cet UUID, c'est un UID. Utilisez ce modèle ici. Tout d'abord, sélectionnez tout. Ici. Je suis désolée. Je fais une
erreur vraiment stupide encore et encore. Mais , en termes ensuite, en termes de salaires et d'impôts, les a
fait dans le cadre d'une politique réellement sûre. Cela signifie donc qu' un dossier
sera créé
dans ce compartiment. C'est-à-dire que chaque utilisateur
aura son propre dossier. Vous le comprendrez lorsque
nous commencerons à télécharger des images. Maintenant, nous devons également installer
un package. Accédez à pub.gov et
écrivez le sélecteur de fichiers. Je choisis celui-ci. Il vous suffit de copier une dépendance. Accédez au fichier YAML Pub spec point. En dessous du point liquide ENV. Il suffit de coller et d'enregistrer. Cela prend un peu de temps. Mais nous allons le garder. C'est fait. Si nécessaire, vous pouvez redémarrer notre arrêt et
exécuter votre application, mais je ne pense pas
que ce soit obligatoire. Et pour Android, il n'
y a pas de configuration. Mais si vous utilisez
un appareil iOS, vous pouvez simplement consulter
la documentation ici pour le configurer. Mais pour notre appareil, cette chose est acquise.
Alors c'est tout. Dans la vidéo suivante, nous allons commencer à travailler sur
la fonctionnalité de téléchargement.
20. Implémenter la fonctionnalité de chargement: Bonjour, Commençons par l'
écran de téléchargement. Créez un nouveau fichier dans
les pages et nommez-le. Téléverser. Point de page, point. Commencez à travailler sur l'UA. Importation de matières premières, autoroutes, Floride. À bord. Créez maintenant cette vision complète de
l'État. On pourrait juste
le nommer téléchargement, âge. Et maintenant, du veau comme armes, Superbus, du rangement. Puis un corps. Pour l'instant, il suffit de le laisser dans le
contenant. Puis bouton d'action flottant. Bouton d'action flottant. Ce bouton sera
utilisé pour ajouter une icône photo. Je peux commencer et appuyer sur un péage, laisse-le pour le moment. Et puis tout en haut, cela
crée un état de chargement. déchargement est égal à faux. Maintenant, allez au point
d'accueil dans la barre AB. Créez un nouveau bouton pour télécharger des images. Ici. J'aurai un nouveau bouton
car je peux le faire sur place. Et
je peux télécharger un fichier. Et ça devrait disparaître, comme toujours. Et sur site, il suffit de
naviguer, de naviguer dans leur Bush. Matérialisez-le. Et page de téléchargement. C'est ça Sauvegardons-le. Et consultez notre application. Cela permet toujours d'économiser. D'accord, nous avons cette icône. Si je clique dessus, vous voyez, c'est la page de stockage. Il est maintenant temps de travailler sur la fonctionnalité de téléchargement
d'images. Supervise nous donne une fonction de
téléchargement qui accepte deux arguments,
à savoir ce nom de fichier. Nous pouvons également l'
imbriquer et mentionner la structure pliée dans
laquelle nous voulons stocker dans Superbus
dans cet argument. deuxième argument est le fichier
que nous voulons télécharger. Allons-y, passons
à la page de téléchargement. Oui, la première chose
à bord, pas IO. Créez ensuite une instance Superbus, instance
client, comme ceci. Créez ensuite une fonction. Futur. Télécharger la synchronisation des fichiers. Maintenant, pour publier, nous allons
utiliser la bibliothèque de sélection de fichiers. File est égal à wait. Par une grande plateforme. Les fichiers Not Pick autorisent chutes
multiples et ils
seront des images à points. Nous utiliserons l'
onglet Fichier sous forme d'image pour le moment, évidemment de la même manière
que vous pouvez télécharger n'importe quel fichier. Maintenant, nous allons écrire
une instruction if pour vérifier si l'utilisateur a
choisi un fichier ou non. Si le fichier n'est pas nul, seul l'état
de téléchargement est vrai. Alors, faisons un
essai de blocage. Dans ce bus. C'est plus lourd. Le fichier fichier est égal à, nous devons le
convertir en objet de fichier, le fichier point étant le premier chemin point. Et ce ne serait pas nul
puisque nous avons le contrôle if. se peut que vous
demandiez le blanc en premier,
car cela nous donne la liste des fichiers et nous savons que nous
n'en avons pas autorisé plusieurs, alors choisissez simplement le
premier fichier, et c'est tout. Le nom de la chaîne est alors égal à un gros fichier, à des fichiers à points. Prénom Dot. Ensuite, chargez une chaîne. URN téléchargée équivaut à attendre. Voici maintenant la syntaxe des
super voies de stockage. images des utilisateurs ne proviennent pas
du nom de notre compartiment. Alors, à qui appartient la fonction de
téléchargement ? Et il s'agit d'une question
sur la batte de profondeur. N'oubliez donc pas que nous devons créer un dossier portant le nom
de cet identifiant utilisateur. J'espère que vous vous souvenez que nous sommes dans les politiques que
nous avons rédigées ainsi. Le superviseur n'est pas un artiste, ce n'est pas un nom d'utilisateur actuel. Ensuite, ajoutez une barre oblique,
puis un nom de fichier. Comme ça. Et c'est
un dossier déjà pris. Maintenant, si vous le souhaitez, vous pouvez
simplement imprimer l'URL téléchargée. Et puis je suis juste en train définir l'état, c'est que le chargement
est égal à faux, n'
est pas le chargement, c'est le téléchargement. Vous transférez Isabelle sur false. Et échafaudez le
snack-bar
Messenger of Contexts que j'ai téléchargé avec succès. Sexes au complet. Couleur de fond, la couleur est vert foncé. Et faites-en une constante. Et dans ce hic, il
suffit de dire « imprimer ». Pour l'instant, c'est du débuggage. Et nous imprimerons une annonce. L'état défini est le téléchargement de fichiers. Il télécharge une comédie musicale sur false. Et de même, dans Scaffold, quelque chose s'est mal passé. C'est ça Maintenant, K Oui. C'est aussi
une application de bureau. D'accord. Je ne l'ai pas attribué. Passons au téléchargement. Le nom de notre fonction
est uploader un fichier. Dis-le ici. Maintenant, si je clique sur le bouton, je me demande simplement ce qui
est ajouté ici ? Maintenant, mes données sont là, mais aussi dans le bouton flottant. F à faire si le téléchargement est vrai. Et contre cet objectif. Indicateur de progrès. Enregistrez tout, réessayez de
voir quelle est l'exception ajoutée en raison l'absence de plug-in hockey, arrêtons notre application et redémarrez-la. J'ai donc déjà
commencé ma candidature. Testons-le à nouveau.
Cliquez sur le bouton. Maintenant que sa base d'approvisionnement est en demande, nous ne pouvons l'autoriser qu'une seule fois. Utilisez ensuite cette image et enregistrez
le fichier téléchargé avec succès. Passons maintenant au tableau de bord de notre
superviseur. Ici. Si je le recharge, vous verrez que nous avons
cette image d'utilisateur. Et nous avons cette image ici. Et voici le nom
de l'identifiant utilisateur. C'est-à-dire qu'il s'agit d'un
dossier contenant l'ID utilisateur. J'espère donc que vous avez compris
comment nous pouvons télécharger des images. Il suffit de mettre la vidéo en pause et comprendre notre tentative de
comprendre le code. Il s'agit simplement d'une chose fondamentale. La première, depuis ce
téléchargement du fichier EXE, datatype debt, pourquoi nous l'avons
converti en fichier. Ensuite, nous avons le
nom du fichier, et c'est tout. Dans la vidéo suivante, nous corrigerons les images
téléchargées et Q.
21. Fetch des images chargées: Bonjour. Il est maintenant temps de récupérer les images
téléchargées dans Firebase. Nous pouvons utiliser la méthode de liste de la
fonction storage point bucket pour sélectionner tous les fichiers de ce
dossier à partir de lui. La méthode Bucket List renvoie une
liste de fichiers contenus dans le compartiment, que vous pouvez ensuite parcourir pour accéder aux fichiers
individuels. Donc, juste pour
émuler la syntaxe, syntaxe pour récupérer des images. C'est aussi simple que ça. Objet de fichier de la liste finale. Résultats. Supposons ici un poids. Donc, le rangement des points de Bobby. À partir de là, à partir d'images , c'
est-à-dire le nom du
bucket, la liste de points. D'accord ? Vous pouvez simplement indiquer
le nom du bucket ici. Nom du compartiment. N'oubliez donc pas que nous pouvons mentionner le nom du dossier dans cette liste en passant un
argument appelé Math. Ainsi, comme dans notre exemple, nous créons des
dossiers par identifiant utilisateur. Nous allons donc l'utiliser. Faisons nuit et
écrivons la fonction def. Créez une nouvelle fonction. Mon nom, découvrez mes trouvailles. Liste finale. Objet de fichier. Le résultat est égal à
attendre Superbus. Rien de superbement. Rien H. Rien de
l'image de l'utilisateur n'est une liste noire. D'accord ? C'est donc l'air, mais vous devez évidemment
mentionner le nom de ce dossier. Il s'agira de l'
identifiant utilisateur actuel en super res point . Ce nom de dossier. Grotte. Maintenant, n'oubliez pas que ce résultat
ne renvoie pas l'URL de l'image. Donc, ici, ce que je veux dire
par là, c'est attendre. Liste, même si je vais simplement écrire un élément de barre dans le résultat, imprimer un élément. OK, essayons de le faire. Voyons voir, déplacez tout
depuis la console. Si je clique,
je n'ai évidemment pas appelé la fonction. Je ne pense pas. Nous avons l'état initial ici. OK, définissons un objectif factice. Passons à l'état d'initialisation. Récupère mes fichiers. Maintenant, si je vais sur la page, nous avons une instance
de l'
objet de fichier C. C'est
ce que cela nous donne. ID du compartiment, compartiments gérés, métadonnées, nom similaire à celui-ci. Mais cela ne
nous donne pas l'URL de l'image .
Vous obtiendrez
donc le nom, désolé, identifiant et le nom,
ainsi que les métadonnées. Donc, si je redémarrais. Ensuite, vous verrez la
taille de l'ETag, le contrôle du cache. Tout est l'annonce
plutôt que l'URL de l'image. Maintenant, pour cela, la
supervision nous donne une autre fonction qui consiste à obtenir l'URL publique. Je
vais te montrer comment faire. Je vais d'abord créer
une variable vide, qui sera une liste de chaînes. Mes images sont comme celles-ci. Cela peut alors changer. En conséquence. Nous avons maintenant, vous obtiendrez une URL
égale à. Maintenant, voici. À partir de là, notre
superviseur ne
vient pas , pas de l'utilisateur. Des images. Dot get. Voyons ce qui se passe. OK, j'ai oublié ce rangement. Quelle stupide erreur. Les images des utilisateurs Dot reçoivent une URL publique. Voir. Maintenant, il
nous demande la partie de cette barre d'image
dont nous avons besoin. Tout d'abord, le dossier
qui est si omniprésent, point, point, identifiant utilisateur actuel. Et aussi, si vous le souhaitez, vous pouvez utiliser une gestion
d'état, comme Provider, et obtenir cette idée
et tout y stocker. instant, je le
fais d'une manière très simple. Et n'oubliez pas que nous obtenons
le nom de l'image. C'est donc comme le nom d'un
point d'image, comme celui-ci. À partir de là, nous obtiendrons l'URL qui peut être utilisée
pour montrer l'innovation. D'accord ? Et voyons si c'est
le futur ou non. Non, ce n'est pas le futur. Je peux donc simplement
enlever ce poids. Et ici, je vais ajouter ces informations à
celles ci-dessus chez EMTALA. Tout d'abord, je vais également
enregistrer le nom afin qu'il puisse être utilisé plus tard pour
supprimer, supprimer le but. Et l'URL va faire l'affaire et
obtenir l'URL comme ceci. Enfin, je vais
retourner mes images. Et aussi, si vous le souhaitez, imprimons d'abord si
cela fonctionne ou non. Mes images sont variables. Et voyons voir, je
vais juste revenir sur cette page. Et voir le nom de l'image est
celui-ci, l'URL est celle-ci. Cela signifie donc que nous
obtenons les informations. Il s'agit de cette URL publique. Il est maintenant temps de montrer que
les images de cette interface utilisateur qui
se trouve auparavant dans le corps n'étaient
qu'un conteneur. Cela sera modifié. Écrivons maintenant Future Builder. Votre chaise. Nous avons cet
avenir et récupérons mes fichiers. contexte, un instantané du lavabo. Instantané. Maintenant, si Snapshot Dot contient des données, faites autre chose. Le retour est un indicateur de
progression circulaire. Indicateur. Si le snapshot contient des données , vérifions-le d'
abord. Instantané. Données. La longueur du point
est égale à zéro, c'
est-à-dire qu'aucune image n'est téléchargée. Retournez ensuite les liens, le texte
central, sans étiqueter l'image. Et si ce n'est pas le
cas, revenez. Allons-y. Widget. Et n'oubliez pas que vous pouvez également
utiliser le générateur, mais j'utilise un autre
widget appelé séparé, sorte qu'entre
tous les éléments, j'ai une séparation de, c'
est-à-dire que je l'ai
divisé en tant que séparateur. C'est l'un des
widgets en désordre. Je présume que c'est là, mais je vais d'abord écrire. Separator apprendra. Il contient également des textes et un index. Nous allons simplement renvoyer un diviseur
const comme celui-ci. De l'épaisseur à la couleur. La couleur est noir foncé. Comme ça. Ensuite
, nous allons apprendre. Encore une fois, il en va
de même pour l'index suivant. N. Je vais obtenir la carte des données, l'image les données instantanées et l'index des données. Je suis juste en train de stocker cette valeur
cartographique ici à partir de cette liste une par une. Et renvoyez une ligne, ce qui signifie que les éléments excédentaires
restent accessibles. Et le centre de Mendota et
les enfants mangeront des puddings. Le premier est la taille de la boîte. Ici. Ce sera courant. La boîte, c'est, ce sera l'image. Je ne fais que lui donner de la hauteur. Il ne s'étend pas à tous les bâtons ou ne
pose pas de problèmes plus tard. Réseau de points d'images. Maintenant, voici les données de l'image principale, l'URL, la boîte, la couverture à points. Et après cette boîte de cette taille, dans cette rangée, j'
aurai un bouton en forme d'icône. Je peux être capable de
supprimer confortablement les couleurs, rouge, 0, touche. Et je vais supprimer cet état
d'initialisation pour le moment. J'espère que tout fonctionnera. C'est Jed. Jetons un coup d'
œil à notre application. Je clique sur ce bouton et je vois que l'image
apparaît dans notre application. Je vais juste ajouter un rembourrage
à cette vue de liste. C'est ça. En ajoutant
sera constant, les incrustations de
bord symétriques par points. Ce qu'ils peuvent. Alors comme ça. Tu vois, c'est notre image. J'espère que tout va bien. Téléchargeons une autre
image. Voyons voir. Je vais utiliser ce virus. voyez, nous avons
aussi ce diviseur et nous avons
deux images ici, qui sont superbes. Nous avons également effectué la partie de la
récupération des images. Dans la vidéo suivante, nous travaillerons sur
ce bouton de suppression. Et puis nous avons fait tout ce qui était nécessaire pour apprendre dans Superbus. Merci.
22. Supprimer la fonctionnalité d'image: Bonjour, bon retour. Travaillons maintenant sur la fonctionnalité
de suppression du stockage. Sur les autoroutes. Nous avons DUS, supprimez ma technologie pour supprimer
un fichier du compartiment. Il suffit donc d'écrire la syntaxe
pour vous déplacer en fonction de son très basique objet de liste
finale
très basique. Il nous renvoie donc également ce fichier
supprimé. Super ways, points, Storage, bucket, name, point, supprimez ceci, supprimez x et ajoutez un paramètre avec les
noms de fichiers à l'intérieur de cette image, un point PNG, comme ceci. Et aussi, si nous le voulons, nous pouvons mentionner que le
nom du dossier est également un cheveu. Dans notre cas, cela se
fera avec un identifiant utilisateur. Créons-le. Ici. Je vais supprimer l'impression, elle sera annulée à l'avenir. Je ne veux pas renvoyer
quoi que ce soit de large, supprimez l'image. Et il prendra un nom de chaîne, c'
est-à-dire le nom de l'image. Tapons le try catch. Le catch block.
Oui, c'est exact. Des super moyens. Points, point de stockage
provenant des images de l'utilisateur. Supprimer. Oui. Tu dois
en écrire une partie. Une partie sera composée de super a qui ne sont pas l'identifiant utilisateur
actuel et le nom de l'image. Vous pouvez également utiliser
l'interpolation de chaînes. Mais pour l'instant, voyons
si cela fonctionne ou non. Ensuite, je vais simplement envoyer des données, rafraîchir la page pour que
notre futur meure. Nous montre les dernières images. Et s'il y a
une erreur, alors les contextes, snack-bar, écrivez
simplement
quelque chose, ont mal tourné. C'est ça. Nous devons utiliser cette fonction pour l' appeler ici dans le bouton icône. Comme l'ail, le nom de l'
image, le nom de l'image, et ce sera un nom. Oui, nous lui avons donné un nom. Allons-y. Sauvegardons-la et
sortons notre application. Nous y allons. Et si nous
le faisions, supervisez, si je clique dessus, vois qu'il est également supprimé
du stockage. Donc, si je le rafraîchis, voyons voir, je pense que ce sera le film, oui, le montage ne
concerne qu'une seule image. Notre fonctionnalité de suppression
fonctionne également parfaitement. En termes simples, nous avons
cette application complète, suffit de la voir, de la tester. Enfin, si je le fais, je ne ferai que des projets. Maintenant, cliquez sur Créer. L'insertion fonctionne. Ensuite, nous avons le monde réel. Et si je le change en noir, c'est aussi évidemment
faux, mais ça marche. Et puis supprimez-le
également. Je l'ai supprimé. C'est la rud
opérations que l'arène
a également apprise
sur la sécurité au niveau des lignes. Nous avons également
procédé à une authentification. Et encore une fois, si je
vais le télécharger. Comme vous pouvez le constater, le téléchargement
fonctionne également parfaitement. Et je vais juste me déconnecter. Merci donc d'avoir été le Lee et j'espère vous voir également dans
mes prochains cours. Alors d'ici là, continuez à travailler
dur et à vous entraîner.