【问题标题】:How to store data in shared preference when retrieve from database firestore in flutter?从数据库 firestore 中检索时如何将数据存储在共享首选项中?
【发布时间】:2023-01-25 14:30:37
【问题描述】:

在我的主页代码中,从 firestore 数据库中获取用户名,这在 UI 中显示得很好。我想将该名称传递给共享首选项函数并存储在那里并在其他页面中也使用该名称。

代码

主页代码(初始化状态并将名称发送到 saveNameToSharedPreferences() 方法)

  @override
  void initState() {
    super.initState();
    getData();
    fetchName();
    storeName();
  }

  void storeName() {
    String displayName = '${user?.displayName}';
    return displayName.saveNameToSharedPreferences();
  }

共享首选项代码

import 'package:shared_preferences/shared_preferences.dart';

String? _displayName;

String? get displayName => _displayName;

Future saveNameToSharedPreferences() async {
  final SharedPreferences sn = await SharedPreferences.getInstance();

  await sn.setString('displayName', _displayName!);
}

Future getNameFromSharedPreferences() async {
  final SharedPreferences sn = await SharedPreferences.getInstance();

  _displayName = sn.getString('displayName');
}

如何解决这个问题?

【问题讨论】:

    标签: flutter sharedpreferences


    【解决方案1】:

    您正在以 extension 的身份呼叫 function。尝试传递参数。

    进行以下更改

    Future saveNameToSharedPreferences(String displayName) async {
      final SharedPreferences sn = await SharedPreferences.getInstance();
    
      await sn.setString('displayName', displayName);
    }
    

    并将其称为

     void storeName() {
        String displayName = '${user?.displayName}';
        saveNameToSharedPreferences(displayName);
      }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-26
      • 2020-10-04
      • 2020-08-18
      • 2015-10-17
      相关资源
      最近更新 更多