firebase - 未找到 Flutter Firebase.signInWithGoogle 方法
问题描述
我正在尝试在我的 Flutter 应用程序中添加 Google 身份验证。但我的 Android 工作室无法在FirebaseAuth类下找到signInWithGoogle方法。我的意思是当我写 FirebaseAuth 的时候。signInWithGoogle Android 工作室抱怨说没有为类 Firebase 定义方法 signInWithGoogle。
我已经有了Firebase.signInWithEmailAndPassword并且工作正常。
我在 pubspec.yaml firebase_auth 中有以下依赖项:^0.8.0+1
以下是我在课堂上的导入......
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:google_sign_in/google_sign_in.dart';
import 'package:my_project/auth.dart';
import 'package:my_project/register.dart';
import 'package:my_project/signin/button_list.dart';
import 'package:my_project/signin/button_view.dart';
import 'package:my_project/utils.dart';
class _LoginPageState extends State<LoginPage> {
final formKey = GlobalKey<FormState>();
// Google Sign In
final GoogleSignIn _googleSignIn = GoogleSignIn();
final FirebaseAuth _auth = FirebaseAuth.instance; // No errors so far
此外,当我单击 ctrl + 空格查看FirebaseAuth下的所有方法时,它根本没有显示signInWithGoogle方法。
请帮忙!提前致谢...
解决方案
查看 firebase_auth github repo https://github.com/flutter/plugins/blob/master/packages/firebase_auth/example/lib/main.dart#L70中提供的示例
Future<String> _testSignInWithGoogle() async {
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth =
await googleUser.authentication;
final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
final AuthResult authResult = await _auth.signInWithCredential(credential);
final FirebaseUser user = authResult.user;
assert(user.email != null);
assert(user.displayName != null);
assert(!user.isAnonymous);
assert(await user.getIdToken() != null);
final FirebaseUser currentUser = await _auth.currentUser();
assert(user.uid == currentUser.uid);
return 'signInWithGoogle succeeded: $user';
}
推荐阅读
- typescript - Typescript - 在用户登录之前使类属性不可用
- node.js - NodeJS Zlib 支持 LZW(“压缩”)算法吗?
- ios - 如何找出当前是否在 SwiftUI 中选择了视图
- qt - 为什么 lupdate 不将 qml qstr 字符串包含到 .ts 文件中?
- c++ - 链接器命令失败,退出代码为 1(使用 -v 查看调用)我的代码
- angular - 打字稿变量定义中的角管道字符用作布尔运算或
- swift - 从模态表示中传递数据
- python - 根据元素值列出子集
- git - 在 git status 中显示每个文件的本地更改总数
- mysql - Multi INNER JOIN 给出了意外的重复记录