Flutter将设备令牌保存到SharedPreferences

时间:2020-07-19 10:12:00

标签: flutter

我试图将设备令牌保存到SharedPreferences中,以便可以在其他窗口小部件中使用它,但是在其他窗口小部件中,令牌值始终为null。不知道我在这里做错了什么。

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    _messaging.getToken().then((token)  {
      _getAndSaveToken;

        });

  }

 _getAndSaveToken()  {
    _messaging.getToken().then((token) async{
      final prefs = await SharedPreferences.getInstance();
      await prefs.setString('token', token);
      print(token);
    });

  }

1 个答案:

答案 0 :(得分:2)

要先使用共享首选项,您必须创建一个这样的实例

SharedPreferences prefs = await SharedPreferences.getInstance();

然后保存一个值

prefs.setString("token", token);

要在另一个小部件中访问此文件,您应该访问相同的实例并使用get

String token = prefs.getString("token");

在您要设置令牌的情况下,应该是这样。

_getAndSaveToken() async {
    _messaging.getToken().then((token) {
      SharedPreferences prefs = await SharedPreferences.getInstance();
      prefs.setString("token", token);
      print(token);
    });    
  }

您可以按以下方式访问此令牌

_getSavedToken() async {
        SharedPreferences prefs = await SharedPreferences.getInstance();
        String token = prefs.getString("token");    // do something with this
      }