使用Flutter永久存储数据



我正在用Flutter和Firebase开发一个应用程序。

我想将_id永久存储在SharedPreferences中。

因此,我照顾了它,但我的代码根本不起作用。它总是抛出错误:

类型"Future"不是类型"String"的子类型

这是我的代码:

class Profile with ChangeNotifier {
String _id;
void setName(String name) {
const url =
'myurl';
http
.post(url, body: json.encode({'name': name, 'description': name}))
.then((response) {
_id = json.decode(response.body)['name'];
});
addID();
}
Future<void> updateName(String name, String id) async {
String url =
'myurl';
await http.patch(url,
body: json.encode({'name': 'Ein Titel', 'description': name}));
}

以下是我使用SharedPrefs的方法:

String getID() {
return getIDOffline();
}
addID() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('id', _id);
}
getIDOffline() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
//Return String
String stringValue = prefs.getString('id');
return stringValue;
}

您对返回字符串使用了错误的方法,因此必须将String getID()更改为Future<String> getID()。你可以这样使用。

getValue()async{
String value = await getID();
}

当您使用async时,请始终尝试添加Future。

类似:

Future<returnType> methodName() async { }

在您的代码中尝试更改String getID(){ }Future<String>getID() async{ }

相关内容

  • 没有找到相关文章

最新更新