😳

使用 Android Studio 为 Flutter 应用添加 Google Sign-In 时未添加 SHA 证书指纹到 Firebase

在使用 Firebase + Google 登录功能时,如果未在 Firebase 控制台中添加 SHA-1 证书指纹,将导致 Google 登录失败,返回的用户为 null。本教程将教你如何正确生成并添加 SHA 指纹,以及如何解决 JAVA_HOME 未设置的问题。


🛠 步骤一:生成 SHA-1 指纹

  1. 打开你的 Flutter 项目中的 android 文件夹。

  2. 找到 gradlew 文件,右键选择:

    1
    Open In > Terminal
  3. 在打开的终端中输入以下命令:

    1
    ./gradlew signingReport
  4. 稍等几秒,控制台会输出类似以下内容:

    1
    2
    3
    Variant: debug
    SHA1: AB:CD:EF:...
    SHA-256: ...
  5. 复制输出中的 SHA-1 指纹


🔗 步骤二:添加 SHA-1 到 Firebase

  1. 打开 Firebase 控制台
  2. 进入你的项目 → 点击左上角齿轮【项目设置】
  3. 在 “你的应用” > Android 中,找到 SHA 证书指纹
  4. 点击【添加指纹】,粘贴刚才复制的 SHA-1
  5. 保存更改
  6. 🔄 重新下载 google-services.json 文件,替换到项目中的:
    1
    android/app/google-services.json

❗ 可能遇到的问题:JAVA_HOME 未设置

如果你在执行 ./gradlew signingReport 时遇到如下错误:

1
ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

说明系统没有配置 Java 的环境变量。按以下步骤解决:


✅ 设置 JAVA_HOME 的方法

  1. 打开 Android Studio:

    1
    File > Project Structure > SDKs
  2. 在列表中找到类似 jbr-21 / jbr-17 的 Java SDK(选择数字最大的那个)

  3. 在右侧找到 JDK home path复制该路径

    • 示例路径:C:\Program Files\Android\Android Studio\jbr
  4. 打开系统环境变量设置:

    • Windows 搜索 Environment Variables
    • 点击【环境变量】→ 在 “用户变量” 中点击【新建】
  5. 填写如下信息:

    • 变量名JAVA_HOME
    • 变量值:粘贴你复制的 JDK home path
  6. 点击【确定】保存,然后在系统变量中的 Path 里添加一项:

    1
    %JAVA_HOME%\bin
  7. 保存所有设置,重启命令行,再次运行:

    1
    ./gradlew signingReport

✅ 最终效果

你应该能看到完整的 SHA 指纹,并成功将其添加到 Firebase。这样,Google Sign-In 登录就能正常返回用户信息了!