Flutter Firebase Android/ios Google 登录错误

Posted

技术标签:

【中文标题】Flutter Firebase Android/ios Google 登录错误【英文标题】:Flutter Firebase Android/ios Google Sign in Error 【发布时间】:2020-02-20 20:04:06 【问题描述】:

问题我已经在 android 上创建了一个应用程序,我想在 ios 上进行测试,但我似乎无法让 firebase google 登录工作。当我点击登录按钮时,应用程序会完全跳过登录,甚至不会询问我的谷歌登录信息。错误当我运行应用程序时,我得到 .

import 'package:flutter/material.dart'; 导入“包:google_sign_in/google_sign_in.dart”;

void main() => runApp(MyApp());

class MyApp extends StatefulWidget 
  @override
  State<StatefulWidget> createState() 
    // TODO: implement createState
    return _MyAppState();
  


class _MyAppState extends State<MyApp> 
  bool _isLoggedIn = false;

  GoogleSignIn _googleSignIn = GoogleSignIn(scopes: ['email']);

  _login() async
    try
      await _googleSignIn.signIn();
      setState(() 
        _isLoggedIn = true;
      );
     catch (err)
      print(err);
    
  

  _logout()
    _googleSignIn.signOut();
    setState(() 
      _isLoggedIn = false;
    );
  

  @override
  Widget build(BuildContext context) 
    // TODO: implement build
    return MaterialApp(
      home: Scaffold(
        body: Center(
            child: _isLoggedIn
                ? Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Image.network(_googleSignIn.currentUser.photoUrl, height: 50.0, width: 50.0,),
                Text(_googleSignIn.currentUser.displayName),
                OutlineButton( child: Text("Logout"), onPressed: ()
                  _logout();
                ,)
              ],
              )
                : Center(
              child: OutlineButton(
                child: Text("Login with Google"),
                onPressed: () 
                  _login();
                ,
                ),
              )),
        ),
      );
  

【问题讨论】:

发布你的 pubsec.yaml 文件 下面的注释是.yml文件 PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null) 重复的***.com/questions/58013572/… 该用户重复执行此操作。 【参考方案1】:
name: gmailsignin
description: A new Flutter application.

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  cloud_firestore:
  firebase_auth:
  google_sign_in:
  rxdart: 0.20.0

  flutter:
    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2

dev_dependencies:
  flutter_test:
    sdk: flutter


# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application, add an assets section, like this:
  # assets:
  #  - images/a_dot_burr.jpeg
  #  - images/a_dot_ham.jpeg

  # An image asset can refer to one or more resolution-specific "variants", see
  # https://flutter.dev/assets-and-images/#resolution-aware.

  # For details regarding adding assets from package dependencies, see
  # https://flutter.dev/assets-and-images/#from-packages

  # To add custom fonts to your application, add a fonts section here,
  # in this "flutter" section. Each entry in this list should have a
  # "family" key with the font family name, and a "fonts" key with a
  # list giving the asset and other descriptors for the font. For
  # example:
  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700
  #
  # For details regarding fonts from package dependencies,
  # see https://flutter.dev/custom-fonts/#from-packages
module:
    androidX: true

【讨论】:

谢谢,伙计。我明白了

以上是关于Flutter Firebase Android/ios Google 登录错误的主要内容,如果未能解决你的问题,请参考以下文章

安装 Firebase 后 Flutter 无法在 Android 上运行

带有 Firebase 云消息传递的 Flutter 2.0:onMessage 未在 Android 上调用

Flutter:我想将 Flutter 应用程序注册(连接)到 Firebase,但我无法使用 android 模拟器注册(连接)

将多个firebase项目添加到一个flutter(android部分)项目中

Firebase 身份验证不会在 Flutter 中保留在 iOS 或 Android 上

Flutter Firebase——为 iOS、Android 和 Web 设置不同的部署目标