Flutter Firebase身份验证教程

2023-11-12

在Flutter Firebase身份验证的这篇文章中,我们将了解如何使用Firebase的flutter插件向我们的Firebase应用程序验证用户身份。

如果您不熟悉颤动,建议您先阅读此内容,然后再继续。 它将为您提供有关抖动的基本概念,并帮助您完成本教程。

https://ayusch.com/getting-started-with-flutter-app-development/

我们将创建一个具有登录屏幕和主页的基本应用程序。 它可以让用户登录注销应用程序。 我们还将具有允许用户注册到我们的Firebase应用程序的功能。

这是应用程序的基本流程:

所以,让我们开始吧!

创建Flutter应用程序

转到Android Studio并通过单击“ 新建”->“ Flutter项目”并遵循从那里开始的向导来创建Flutter应用程序。

删除默认计数器应用程序的代码,并添加以下行:

 import 'package:flutter/material.dart' ;  import 'package:flutter_firebase_auth/root_page.dart' ;  import 'LoginSignupPage.dart' ;  import 'authentication.dart' ;  void main() => runApp(MyApp());  MyApp class extends StatelessWidget { 
   // This widget is the root of your application. 
   @override 
   Widget build(BuildContext context) { 
     return MaterialApp( 
       title: 'Flutter Authentication AndroidVille' , 
       theme: ThemeData( 
         primarySwatch: Colors.blue, 
       ), 
       home: RootPage( 
         auth: new Auth(), 
       ), 
     ); 
   }  } 

我们将很快创建RootPage。

注意 :请记住不要使用AndroidX工件。 Firebase的Flutter插件包含一些AndroidX不支持的注释。 在升级之前,我们不要使用AndroidX。

添加依赖项

我们需要在android / flutter中添加一些依赖关系,以便Flutter使用Firebase身份验证。

首先,将其添加到项目级别的build.gradle文件。 对于扑扑的项目,这可以在android / build.gradle中找到

 classpath 'com.google.gms:google-services:4.3.2' 

接下来,我们需要将google-services插件应用于应用程序级别build.gradle 。 这可以在android / app / build.gradle中找到。 将此行添加到文件末尾。

 apply plugin: 'com.google.gms.google-services' 

最后,我们需要为flutter添加firebase插件。 打开pubspec.yaml并在依赖项下添加以下行:

 firebase_auth: ^ 0.6 . 6 

创建Flutter Firebase身份验证服务

接下来,我们需要为flutter的firebase登录系统创建身份验证服务。 所有页面(或android中的活动)都将使用它与Firebase进行通信。

创建一个新的dart文件,名称为: authentication.dart

我们将首先添加一个抽象的BaseAuth类,该类将由Auth类实现。 这包含登录,注册,获取用户信息和注销用户的基本方法。

 import 'dart:async' ;  import 'package:firebase_auth/firebase_auth.dart' ;  abstract class BaseAuth { 
   Future<String> signIn(String email, String password); 
   Future<String> signUp(Strin
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter Firebase身份验证教程 的相关文章

  • 在 doxygen 中使用 @see 或 @link

    我之前用 Javadoc 记录并使用了标签 see link or see foo and link foo 在我的描述中链接到其他课程 现在我尝试了doxygen 似乎这些标签不兼容 如果我运行 doxygen 完整的标签将被简单地解释为
  • android gradle插件-离线安装

    我必须在离线电脑上安装 android gradle 插件 通过谷歌搜索 我了解到我可以通过本地 Maven 存储库来做到这一点 但从不成功的尝试和所有关于这个问题的质量保证中我知道这并不简单 我从来没有和maven一起工作过 有经验的人可
  • 为休息服务实施 JUnit 测试

    我必须为我的休息服务实现一些 JUnit 测试 例如 这是我的休息服务之一 Path dni fe public class HelloWorld POST Path home Consumes MediaType APPLICATION
  • Android 10 中没有设备筛选器的 USB_DEVICE_ATTACHED

    我正在开发一个 Android 应用程序 它在清单中为 BroadcastReceiver 注册了四个意图过滤器 这些都是 android hardware usb action USB DEVICE ATTACHED android ha
  • 始终将双精度舍入

    我怎么总是能把一个double to an int 并且永远不要将其四舍五入 我知道Math round double 但我希望它始终向上舍入 所以如果是的话3 2 四舍五入为 4 您可以使用Math ceil method 请参阅Java
  • React Native v0.71.8 React-native-vector-icons 你看不到的图标

    我在用react native版本v0 71 8 我安装了react native vector icons库 但图标未显示 似乎链接在最新版本的 React Native 中不再起作用 所以我按照说明进行操作 但它不再编译 出现以下错误
  • 如何在捆绑中存储稀疏数组

    我有一个SparseArray
  • javadoc 子集/java 库组织

    我自己从来没有运行过javadoc 无论是在命令行还是ant 的 javadoc 任务 http ant apache org manual Tasks javadoc html 我将使用 ant 我需要为我编写的库生成 javadoc 问
  • 在桌面应用程序中将发票打印到 USB 打印机

    我正在开发 flutter 桌面应用程序 我需要将发票打印到 USB 打印机 https pub flutter io cn packages printing https pub flutter io cn packages printi
  • 在 Eclipse RCP 应用程序中禁用插件贡献

    我经常遇到这个问题 但尚未找到解决方案 每当我编写一个新的基于 Eclipse RCP 的应用程序并包含来自 Eclipse 平台的插件时 我都会 继承 其中一些插件的 UI 贡献 大多数贡献 菜单项 键盘快捷键 属性页 都很有用 但有时我
  • Meteor:即使设置了 ANDROID_HOME 也未设置

    操作系统 Ubuntu 14 04 框架 流星1 1 0 2 应用名称 Songofy 这是输出meteor install sdk android meteor install sdk android Found Android bund
  • 添加 char 和 int

    据我了解 字符是一个字符 即一个字母 一个digit 标点符号 制表符 空格或类似的东西 因此 当我这样做时 char c 1 System out println c 输出 1 正是我所期望的 那么为什么当我这样做时 int a 1 ch
  • 如何使用 AffineTransform.quadrantRotate 旋转位图?

    我想旋转一个bitmap关于它的中心点 然后将其绘制成更大的图形上下文 位图是40x40 pixels 图形上下文是500x500 pixels 这就是我正在做的 BufferedImage bi new BufferedImage 500
  • 线程数组?

    所以我在理解如何避免线程的顺序执行时遇到了问题 我试图创建一个线程数组并在单独的循环中执行 start 和 join 函数 这是我现在拥有的代码示例 private static int w static class wThreads im
  • 在 Tensorflow-lite Android 中将位图转换为 ByteBuffer(浮点)

    在用于图像分类的tensorflow lite android演示代码中 图像首先转换为ByteBuffer格式以获得更好的性能 这种从位图到浮点格式的转换以及随后到字节缓冲区的转换似乎是一个昂贵的操作 循环 按位运算符 float mem
  • Android 模拟器提示和技巧 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • junit4 使用特定测试方法创建测试套件

    在 junit4 中 我想执行来自不同类的特定测试方法 即想要使用来自不同类的特定测试方法创建一个测试套件 假设我有两门课 public class Test Login Test public void test Login 001 Sy
  • 手动添加带有依赖pom/iml文件的aar

    由于我无法使用私人 Maven 来共享我的库 因此我正在考虑共享 aar 并导入到另一个项目中 当 aar 和 jar 文件不包含任何依赖项时 就会出现问题 因此 一旦我在android studio中手动导入aar 使用Import JA
  • 假布尔值=真?

    我在一本书中找到了这段代码 并在 Netbeans 中执行了它 boolean b false if b true System out println true else System out println false 我只是不明白为什
  • 如何获取视图到手机底部的距离?

    如果我在布局上有某个视图 ImageView 例如 是否可以找到View的下边框到手机屏幕底部的距离 Thanks instantiate DisplayMetrics DisplayMetrics dm new DisplayMetric

随机推荐

  • 轻松理解HTTP协议

    一起深入了解http和https协议吧 了解http协议 1 http是什么 2 认识URL 2 1URL 2 2urlencode和urldecode 3 http传输格式 3 1http请求 3 2http响应 4 http请求方法 4
  • ftp将网站发布到服务器,ftp工具将网站上传到服务器

    ftp工具将网站上传到服务器 内容精选 换一换 支持将华为云服务器上的音视频文件通过内网方式上传到与服务器在同一区域的视频点播服务中 但您需要先将服务器当前使用的DNS切换为华为云的内网DNS 具体请参见怎样切换内网DNS 然后使用视频点播
  • 二分查找法和顺序查找法

    二分查找1 二分查找 Binary Search 二分查找又称折半查找 它是一种效率较高的查找方法 二分查找要求 线性表是有序表 即表中结点按关键字有序 并且要用向量作为表的存储结构 不妨设有序表是递增有序的 2 二分查找的基本思想 二分查
  • system和vendor分区挂载解析(Android O)

    首先我们知道init进程在运行时会调用自身 所以init进程分为stage1和stage2两个阶段 而分区挂载操作也分为两个阶段 stage1挂载操作是利用device tree中的配置项来读取配置挂载的 stage2挂载操作则是我们常见的
  • 数据库一对多查询

    环境搭建 实体类 Data public class Teacher private int id private String name private List
  • anaconda不同设备之间的环境复制问题

    问题 由于一些原因 需要从别的机器上复制环境到新的机器上 直接找到anaconda3 envs 下的环境 整个包复制到新的机器上的相同路径下 但是这样虽然能够使用python 并且import其中的库 但是如果要使用pip的时候 会报错 b
  • QT 信号与槽

    QT核心便是信号与槽 通过信号将数据在界面和类中 在本类和其他类中发送和接收 信号负责发送数据 也可以单纯的发送信号 槽负责接收 系统自定义的槽 在相应组件上单机右键转到槽即可看见这列表 例如 一般按钮事件的点击 clicked 松开 re
  • RecyclerView详解 —— 自定义动画

    RecyclerView的强大之处相信大家已经体验到了 在上一篇RecyclerView详解 自定义分割线我们学习了如何定义分割线 本篇将介绍如何自定义动画 Google为我们提供了一个默认的动画实现 DefaultItemAnimator
  • index.android.js打包,Taro 打包apk步骤(Android 打包)

    前提 已经在taro壳子中做了相关打包的配置 已经在taro壳子中做了相关打包的配置 已经在taro壳子中做了相关打包的配置 taro版本2 2 13 1 把项目根目录下的rn temp文件夹复制到壳子根目录 taro native she
  • 打开tensorboard时出现错误:module ‘tensorflow‘ has no attribute ‘estimator‘

    打开tensorboard时出现错误 module tensorflow has no attribute estimator 一 错误现象 二 解决方法 三 错误原因 一 错误现象 二 解决方法 1 打开python的安装目录 找到文件
  • mathjax 数学公式的使用

    这里使用的是mathjax2 7 5版本 其他版本或有不同 下载地址 https github com mathjax MathJax releases tag 2 7 5 MathJax默认样式在被鼠标focus的时候 会有蓝色边框出现
  • 电脑分盘怎么分?分盘详细教程来了,图文教学

    电脑作为小伙伴日常生活使用的工具 很多事情都需要使用电脑来进行处理 虽然小伙伴使用电脑比较多 但是还是有不少的小伙伴不知道电脑分盘怎么分 其实电脑分盘很简单 下面小编就以图文教学的方式 详细的向小伙伴介绍电脑分盘教程 电脑分盘怎么分 很多小
  • 复化中矩形matlab函数法,MATLAB–Mupad 初学者(四)~(八)

    四 函数的创建 一 用赋值运算符创建函数 y 2 x 1 二 用映射创建函数 格式 f x gt body 简化函数后再创建函数 f x gt body直接创建函数 f x gt x 2 1 注意有无等号的区别 三 创建分段函数 1 pie
  • 计算机组成原理(2)-软件设计(二十三)

    计算机组成原理 1 软件设计 二十二 https blog csdn net ke1ying article details 129372288 一 层次化存储结构 速度由慢到快 外存 辅存 硬盘 光盘 U盘 gt 内存 主存 gt cac
  • 【无标题】如何实现权限过滤

    springboot mybatis plus关于数据权限过滤应该怎么实现 spring boot java 角色和部门关联 每个角色可以设置一个数据范围 1全部数据权限 2自定数据权限 3本部门数据权限 4本部门及以下数据权限 5仅本人数
  • PaxosStore解读

    PaxosStore解读 1 QuorumKV NWR 微信有大量分布式存储 QuorumKV 使用这个算法保证一致性 我们对这个算法做了改进 创造性地把数据副本分离出版本编号和数据存到不同设备 其中N 3 数据只有2份 版本编号有3份 在
  • Qt/C++开发经验小技巧281-285

    悬停窗体QDockWidget默认在标题栏右键会弹出悬停模块的显示隐藏菜单 如果需要去掉 会发现设置Qt NoContextMenu或者事件过滤器拦截都是无效的 必须设置 dockWidget gt setContextMenuPolicy
  • adb logcat命令查看并过滤android输出log

    http blog csdn net hansel article details 38088583 cmd命令行中使用adb logcat命令查看Android系统和应用的log dos窗口按ctrl c中断输出log记录 logcat日
  • 小米路由器3潘多拉固件刷机教程

    小米路由器的官方固件优化不够好 很多人都出现限速 断流的现象 我之前也出现过限速的情况 最后没办法只能设置路由器定时重启 前几天突发奇想把定时重启关了 发现路由器居然连着好几天都没啥问题 我以为从此以后就能安心用了 可惜今天又出现了无法上网
  • Flutter Firebase身份验证教程

    在Flutter Firebase身份验证的这篇文章中 我们将了解如何使用Firebase的flutter插件向我们的Firebase应用程序验证用户身份 如果您不熟悉颤动 建议您先阅读此内容 然后再继续 它将为您提供有关抖动的基本概念 并