我有一个Flutter网络应用,该应用使用Google登录,并通过Firebase管理。如果我使用flutter run -d chrome
运行它,则当我单击登录按钮时,它会弹出Google登录窗格,但是在写完我的电子邮件地址后,它表示这是一个不安全的浏览器,我应该尝试使用其他浏览器。经过研究,我找到了一种解决方法,从单独的Chrome窗口中打开localhost:5000
。在这种情况下,问题在于它不显示弹出窗口。
我不知道它是否与该问题有关,但是当我检查该元素时会显示以下警告:
我用于处理登录的代码:
import "package:firebase_auth/firebase_auth.dart";
import "package:google_sign_in/google_sign_in.dart";
class GoogleSignInService {
final GoogleSignIn _googleSignIn;
final FirebaseAuth _auth;
GoogleSignInService(this._googleSignIn, this._auth);
Future<FirebaseUser> handleSignIn() async {
FirebaseUser user;
bool isSignedIn = await _googleSignIn.isSignedIn();
if (isSignedIn) {
user = await _auth.currentUser();
} else {
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth =
await googleUser.authentication;
final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleAuth.accessToken, idToken: googleAuth.idToken);
user = (await _auth.signInWithCredential(credential)).user;
}
return user;
}
}
我在登录按钮的onPressed中调用handleSignin。我使用google_sign_in软件包的4.5.4版。我已完成此处建议的所有操作:https://pub.dev/packages/google_sign_in_web