如何在flutter中将MySQL中的数据与共享首选项进行比较



我将数据保存在MySQL数据库中,并在我的应用程序flutter中显示。此外,我还将相同的id保存到共享首选项文件中。现在我正在尝试检查我从数据库中获得的数据(ID(是否与共享首选项中的(ID(相似。

代码:

Future ApiNotficationApp() async {
final String url = '****************';
var response = await http.post(Uri.parse(url));
var responsebody=jsonDecode(response.body);
if (responsebody.length >0){
for (int i = 0; i < responsebody.length; i++) {
if (responsebody[i]['id'] == UserSimplePreferences.getNotficationAppID() ){
print('x1B[31m${'Equal'}x1B[0m');
break;
}else{
UserSimplePreferences.setNotficationApp('');
UserSimplePreferences.setNotficationAppID(responsebody[i]['id'].toString());
print('x1B[33m${'Not Equal'}x1B[0m');
print('x1B[33m${UserSimplePreferences.getNotficationAppID()}x1B[0m');
break;
}
}
return responsebody;
}else{
}
}

响应体

[{id: 86, title: title, body: Body, DateSend: 1-5-2022, IsWatched: false}, {id: 85, title: title, body: Body, DateSend: 1-5-2022, IsWatched: false}, {id: 84, title: title, body: Body, DateSend: 1-5-2022, IsWatched: false}, {id: 64, title: title, body: Body, DateSend: 1-5-2022, IsWatched: false}]

打印共享首选项

I/flutter ( 9457): Not Equal I/flutter ( 9457): 86

现在我得到了一个不相等的结果,但数据是存在的,而且是相等的。

我该如何解决这个问题?

不确定您是如何实现userimpleReferences的。但既然你添加了它的共同偏好。你可能不得不等待。

String? notificationAppId = await UserSimplePreferences.getNotficationAppID() ?? "";

然后在类似的条件下使用

if ((responsebody[i]['id']).toString() == notificationAppId.toString()){
...
}

最新更新