Flutter如何集成Google Sign In

在Flutter项目中集成Google Sign In时,按照官方文档配置后仍然无法正常登录,控制台报错"A client ID is required for Google Sign In"。已确认在Google Cloud控制台正确配置了Android和iOS的客户端ID,并在Flutter代码中添加了相关依赖和初始化代码。请问可能遗漏了哪些关键步骤?如何验证客户端ID配置是否正确?是否需要额外配置Firebase或其他服务?

2 回复

在Flutter中集成Google Sign In:

  1. 添加依赖:google_sign_in: ^5.4.0
  2. 配置Android和iOS的OAuth凭据
  3. 实现登录逻辑:
final GoogleSignInAccount? user = await GoogleSignIn().signIn();
  1. 获取认证token用于后端验证

需在Google Cloud Console创建项目并配置OAuth 2.0客户端ID。

更多关于Flutter如何集成Google Sign In的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中集成Google Sign In,可以通过以下步骤实现:

1. 添加依赖

pubspec.yaml 文件中添加依赖:

dependencies:
  google_sign_in: ^6.1.1

运行 flutter pub get 安装包。

2. 配置Android项目

  • android/app/src/main/AndroidManifest.xml 中添加网络权限(通常已存在):
<uses-permission android:name="android.permission.INTERNET"/>
  • Google Cloud Console 创建项目并配置OAuth 2.0客户端ID,下载 google-services.json 文件,放置到 android/app/ 目录下。
  • android/app/build.gradle 中确认已应用Google服务插件:
apply plugin: 'com.google.gms.google-services'

3. 配置iOS项目

  • 在iOS项目的 Info.plist 中添加URL Scheme:
<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleTypeRole</key>
    <string>Editor</string>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>YOUR_REVERSED_CLIENT_ID</string>
    </array>
  </dict>
</array>

(将 YOUR_REVERSED_CLIENT_ID 替换为Google Cloud Console中iOS应用的客户端ID)

4. 实现登录功能

在Dart代码中使用:

import 'package:google_sign_in/google_sign_in.dart';

final GoogleSignIn _googleSignIn = GoogleSignIn(
  scopes: ['email'], // 可选:请求额外权限
);

Future<void> signIn() async {
  try {
    final GoogleSignInAccount? account = await _googleSignIn.signIn();
    if (account != null) {
      final GoogleSignInAuthentication auth = await account.authentication;
      String? idToken = auth.idToken;
      String? accessToken = auth.accessToken;
      // 使用令牌进行后端验证或保存用户信息
    }
  } catch (error) {
    print("登录失败: $error");
  }
}

// 退出登录
Future<void> signOut() async {
  await _googleSignIn.signOut();
}

注意事项:

  • 确保在Google Cloud Console中正确配置应用包名和签名证书(Android)及Bundle ID(iOS)。
  • 测试时需使用真机或模拟器,并登录有效的Google账户。

以上步骤可帮助快速集成Google登录功能。

回到顶部