当前位置: 首页 > news >正文

【原创 附源码】Flutter海外登录--Google登录最详细流程

最近接触了几个海外登录的平台,踩了很多坑,也总结了很多东西,决定记录下来给路过的兄弟坐个参考,也留着以后留着回顾。更新时间为2024年2月8日,后续集成方式可能会有变动,所以目前的集成流程仅供参考,但是绝对详细。

整个记录会包含源码。

dart环境:sdk: '>=2.7.0 <3.0.0'

集成海外登录需要科学上网,一共涉及四个平台,Tiktok,Facebook,Google以及Apple登录。我会分别一一整理记录,所以我的项目就命名为fgta_login (Facebook,Google,Tiktok,Apple登录),奇怪的命名+1。

这篇文章只记录Google登录的详细流程,其他几个平台的登录会陆续更新。

一 Firebase平台配置

Firebase平台类似于国内的友盟,可以配置很多个平台的登录,支持创建Flutter的配置,使用起来也非常简单,官网地址如下:https://firebase.google.com/?hl=zh-cn

首先进入官网,点开控制台:

 点击添加项目:

输入项目名:

 点击创建项目:

 创建完成进入项目页面,点击Flutter 标记:

会提示你一步一步进行操作,很重要,每步都要执行:

这三步基本都是在终端执行的,一定要翻墙,在终端运行命令的时候,记得将自己使用的代理终端命令在终端执行一下,比如我用的小飞机,终端命令的复制使用方法是这样:

然后复制在终端执行:

这样终端的命令会也会在翻墙状态下执行。

 继续回到Firebase,执行终端命令:

第一步我这里已经创建过了,就不记录了

第二步: 

第一个命令执行:

dart pub global activate flutterfire_cli

进入Flutter项目文件夹一级目录,执行第二个命令:

flutterfire configure --project=fgtalogin

 这里会提示你选择哪些平台,按住空格键可进行勾选或者取消勾选,按上下键可以选择,我这里只选择安卓和IOS,其他两个取消勾选,然后回车:

一路按y,回车:

执行成功,现在firebase已经配置到你的项目里了。

 回到Firebase官网,点击授权管理:

选择google: 

选择启用:

选择一个邮箱,然后进行保存: 

 

 会提示你下载最新的配置文件更新,点完成。

进入项目设置页面:

 先配置安卓端,点击添加指纹,如果你们是团队开发的话,如果你不是项目的管理员则看不到这里,需要联系你的管理员去添加

安卓端的指纹在这里获取:

 点击之后再控制台找:

复制SHA1指纹到friebase,然后点击保存:

添加完成下载配置文件:

打开安卓项目文件夹,将下载完成的配置文件替换掉刚刚自动生成的,位置在这里,替换一下:

iOS的也需要下载替换一下:

注意命名要保持一致,iOS的在这里,将刚才下载下来的IOS的文件也替换一下:

 

至此,Firebase网页上的配置就完成了。

二 Flutter 项目配置

在项目中添加如下第三方库:

firebase_core: ^1.16.0
firebase_core_platform_interface: 4.5.1
google_sign_in: ^5.4.4

然后执行flutter pub get,如下图:

接着就可以调用google登录了:

 GoogleSignIn _googleSignIn = GoogleSignIn(scopes: <String>['email','https://www.googleapis.com/auth/contacts.readonly',],);GoogleSignInAccount googleUser = await _googleSignIn.signIn();print("googleUser:${googleUser.toString()}");

执行效果如下:

 点击高级:

 点击【转至project-810623983861 (不安全)】,一路授权完成之后,即可实现google登录成功,输出如下:

可以看到,已经获取到google的用户信息了

完成

 源码地址:https://github.com/TheRuningAnt/FGTALogin.git

相关文章:

  • 16:定时器和计数器
  • 编曲学习:旋律创作基础概念 和弦进行作曲 和弦外音使用 作曲技巧
  • 文件上传-Webshell
  • PHP框架详解 - symfony框架
  • 解释Java中的事务管理,以及事务的隔离级别是什么?
  • MySQL温故篇(一)SQL语句基础
  • Springboot+vue的社区智慧养老监护管理平台设计与实现(有报告),Javaee项目,springboot vue前后端分离项目
  • R语言阈值效应函数cut.tab2.0版发布(支持线性回归、逻辑回归、cox回归,自定义拐点)
  • uTools工具使用
  • Redis-缓存问题及解决方案
  • Kafka系列之:Kafka集群同时设置基于时间和日志大小两种方式保存Topic的数据
  • 学习好并用好大模型
  • 【Cocos入门】场景切换(loadScene、preloadScene)
  • nginx slice模块的使用和源码分析
  • jmeter-06常用的几种断言方式
  • 【React系列】如何构建React应用程序
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 0基础学习移动端适配
  • ERLANG 网工修炼笔记 ---- UDP
  • Flex布局到底解决了什么问题
  • golang 发送GET和POST示例
  • HTML中设置input等文本框为不可操作
  • JS基础之数据类型、对象、原型、原型链、继承
  • October CMS - 快速入门 9 Images And Galleries
  • Python打包系统简单入门
  • Vue全家桶实现一个Web App
  • Webpack 4 学习01(基础配置)
  • win10下安装mysql5.7
  • 检测对象或数组
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 巧用 TypeScript (一)
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 十年未变!安全,谁之责?(下)
  • 突破自己的技术思维
  • 因为阿里,他们成了“杭漂”
  • elasticsearch-head插件安装
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 选择阿里云数据库HBase版十大理由
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ###项目技术发展史
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (27)4.8 习题课
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (篇九)MySQL常用内置函数
  • (三)Honghu Cloud云架构一定时调度平台
  • (十) 初识 Docker file
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)Linux+Windows下安装ffmpeg
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)