Flutter - 可以在没有 Firebase 的情况下使用 Google 登录吗?

Posted

技术标签:

【中文标题】Flutter - 可以在没有 Firebase 的情况下使用 Google 登录吗?【英文标题】:Flutter - Can Google Sign in be used without firebase? 【发布时间】:2019-12-23 04:27:16 【问题描述】:

pub.dev 上有 google_sign_in 包,但它提供的用于设置应用程序的链接指向 https://firebase.google.com/?platform=android...

谢谢!

【问题讨论】:

参考此链接medium.com/flutter-community/… 【参考方案1】:

是的!你可以。

    在云控制台中创建项目。

    创建 OAuth 2.0 clientId(通过包名限制)

    下载JSON并将其放在android->app文件夹中,就是这样。

    按照 google_sign_in 包中的步骤进行操作,而无需进入 firebase

     GoogleSignIn googleSignIn = GoogleSignIn(
       clientId:"xxxx.apps.googleusercontent.com");
    

clientId 是可选的 - 但在 Flutter Web 中是必需的

也可以参考flutter web google sign in without firebase

【讨论】:

苹果设备上的谷歌登录怎么样【参考方案2】:

是的。试试签证 - https://github.com/e-oj/visa

这是一个 Facebook auth 的示例(它还支持 google、twitch、discord 和 Github):

import 'package:visa/auth-data.dart';
import 'package:visa/fb.dart';

class AuthPage extends StatelessWidget 
  @override
  Widget build(BuildContext context) 
    return Scaffold(
      /// Simply Provide all the necessary credentials
      body: FaceBookAuth().visa.authenticate(
          clientID: '139732240983759',
          redirectUri: 'https://www.e-oj.com/oauth',
          scope: 'public_profile,email',
          state: 'fbAuth',
          onDone: done
      )
    );
  

以及“完成”回调:

done(AuthData authData)
  print(authData);

  /// You can pass the [AuthData] object to a 
  /// post-authentication screen. It contaions 
  /// all the user and OAuth data collected during
  /// the authentication process. In this example,
  /// our post-authentication screen is "complete-profile".
  Navigator.pushReplacementNamed(
      context, '/complete-profile', arguments: authData
  );

【讨论】:

以上是关于Flutter - 可以在没有 Firebase 的情况下使用 Google 登录吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中从 firebase 存储读取和写入文本文件?

没有创建 Firebase 应用“[DEFAULT]” - 在 Flutter 和 Firebase 中调用 Firebase.initializeApp()

有没有办法将flutter_tts文件保存到firebase存储?

如何在 Flutter 中删除 Firebase 云消息传递令牌

Flutter - Firebase SDK

在没有 android studio 的情况下在本地运行 flutter web 应用程序会引发 firebase 错误