flutter Android端谷歌登录(不使用fireba

flutter开发主要引入插件google_sign_in | Flutter package (pub.dev)

由于google_sign_in文档中描述不清楚,本想通过查阅其他人的源码以加快自己的上手速度,从而忽略flutter/android开发者文档的重要性。

前期入手文档,介绍流程挺详细,也适合小白专看。详见下文:
Google Sign-in in Flutter (without Firebase) | by danial | Medium (danials.space)

但是,该文中却有几处误导了我。

第一个误导处,见下图,按理解应该是从AndroidManifest.xml中获取package内容并填入Package Name中。我也确实是如此做了。

image.png

第二个误导处,见下图,GoogleSignIn的用法,需要填入ServerClientId或者ClientId。

image.png

如果按照上两处流程走,那不可避免到获取用户信息环节出现“APIException:10 null null”。为了解决这个问题,查看了各种各样的文档,也发现有很多提问者还在继续提问着。我按照各个网上的解答,尝试了几次都无功而返。但是,就是没有想起去查阅flutter官方文档……

幸好功夫不负有心人,最终被我找到一篇文章。详见链接下文:Flutter Google Sign In Without Firebase - Sudorealm

这篇文章中提到了几点,让我无地自容。

  1. Package Name 的理解以及配置错误。

image.png

  1. 在app/build.gradle配置中看到了明显的提示。框架自身专门明显提示:TODO内容。

image.png

根据上图中的链接去查阅,就联想到这三者间的关系。

  1. 代码介绍中并没有使用到serverClientId和clientId。

image.png

综上所述几点修正后,成功获取到google user信息。

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%