【发布时间】:2021-03-29 23:51:54
【问题描述】:
我正在尝试让 GoogleSign 与一个 web 应用程序一起工作,为此我一直在关注一篇文章。这是他们说在那里用于登录的功能:
Future<String> signInWithGoogle() async {
// Initialize Firebase
await Firebase.initializeApp();
final GoogleSignInAccount googleSignInAccount = await googleSignIn.signIn();
final GoogleSignInAuthentication googleSignInAuthentication =
await googleSignInAccount.authentication;
final AuthCredential credential = GoogleAuthProvider.credential(
accessToken: googleSignInAuthentication.accessToken,
idToken: googleSignInAuthentication.idToken,
);
final UserCredential userCredential =
await _auth.signInWithCredential(credential);
final User user = userCredential.user;
if (user != null) {
// Checking if email and name is null
assert(user.uid != null);
assert(user.email != null);
assert(user.displayName != null);
assert(user.photoURL != null);
uid = user.uid;
name = user.displayName;
userEmail = user.email;
imageUrl = user.photoURL;
assert(!user.isAnonymous);
assert(await user.getIdToken() != null);
final User currentUser = _auth.currentUser;
assert(user.uid == currentUser.uid);
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setBool('auth', true);
return 'Google sign in successful, User UID: ${user.uid}';
}
return null;
}
它说 SharedPreferences 是一个未定义的类。这是做什么的?有必要吗?如果是,我该如何解决这个问题?非常感谢您的帮助,因为这是我第一次在 Flutter Web 中使用 google 登录。
【问题讨论】:
-
您是否将 shared_dependencies 添加到您的 pubspec.yaml 中?
-
不,我应该在哪里添加它?
-
如果您在 pubspec.yaml 中添加了 sharedprefrences,有时更改不会反映在项目中,最好重新启动 IDE 并再次检查。让我知道它是否有效
-
在依赖部分,这里是官方的安装指南:pub.dev/packages/shared_preferences/install
标签: firebase flutter dart google-signin