如何在颤振中使用 SharedPreferences?

Posted

技术标签:

【中文标题】如何在颤振中使用 SharedPreferences?【英文标题】:How do I use SharedPreferences in flutter? 【发布时间】: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 【参考方案1】:

在您的 pubspec.yaml 文件中添加共享首选项依赖项。

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.0
  shared_preferences: ^0.5.12+4

现在运行 flutter pug get。 像这样在文件中导入包后,

import 'package:shared_preferences/shared_preferences.dart';

现在应该可以正常工作了。

【讨论】:

【参考方案2】:
    打开pubspec.yamldependencies:下方添加shared_preferences: ^0.5.12+4 运行flutter pub get import 'package:shared_preferences/shared_preferences.dart';

这里是链接https://pub.dev/packages/shared_preferences/install

【讨论】:

以上是关于如何在颤振中使用 SharedPreferences?的主要内容,如果未能解决你的问题,请参考以下文章

Android中如何设置SharedPreference文件名称?

如何存储数组到sharedpreference中

如何访问外部应用程序的SharedPreference

手机日期更改时从 sharedpreference 中删除保存的数据

Android中SharedPreference多进程数据共享出错

Android入门第51天-使用Android的SharedPreference存取信息