Flutter 是一个由 Google 开发的 UI 工具包,用于构建跨平台的应用程序。Firebase 是 Google 提供的后端即服务(BaaS)平台,提供了一系列的服务来帮助开发者构建和扩展应用程序。Google 登录是 Firebase Authentication 中的一个功能,允许用户使用他们的 Google 帐户登录应用程序。
Google 登录属于第三方身份验证的一种,用户可以使用他们的 Google 帐户登录应用程序。
原因:
google-services.json
或 GoogleService-Info.plist
)未正确添加到项目中。解决方法:
google-services.json
(Android)或 GoogleService-Info.plist
(iOS)已正确添加到项目中。AndroidManifest.xml
中添加以下权限:AndroidManifest.xml
中添加以下权限:Info.plist
中添加以下权限:Info.plist
中添加以下权限:pubspec.yaml
中添加了 Flutter 和 Firebase 相关依赖:pubspec.yaml
中添加了 Flutter 和 Firebase 相关依赖:flutter pub get
更新依赖。以下是一个简单的 Flutter 应用程序示例,使用 Firebase Google 登录:
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_auth/firebase_auth.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Firebase Google Login'),
),
body: GoogleLoginScreen(),
),
);
}
}
class GoogleLoginScreen extends StatefulWidget {
@override
_GoogleLoginScreenState createState() => _GoogleLoginScreenState();
}
class _GoogleLoginScreenState extends State<GoogleLoginScreen> {
final FirebaseAuth _auth = FirebaseAuth.instance;
Future<void> _signInWithGoogle() async {
try {
final GoogleSignInAccount googleSignInAccount = await GoogleSignIn().signIn();
final GoogleSignInAuthentication googleSignInAuthentication =
await googleSignInAccount.authentication;
final AuthCredential credential = GoogleAuthProvider.credential(
accessToken: googleSignInAuthentication.accessToken,
idToken: googleSignInAuthentication.idToken,
);
await _auth.signInWithCredential(credential);
print('User signed in: ${_auth.currentUser}');
} catch (e) {
print('Error signing in with Google: $e');
}
}
@override
Widget build(BuildContext context) {
return Center(
child: ElevatedButton(
onPressed: _signInWithGoogle,
child: Text('Sign in with Google'),
),
);
}
}
希望以上信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云