Трепещите “Пожалуйста, подождите ….. минут для этой функции”.

#flutter

Вопрос:

Я новичок в Флаттере. Я хочу написать функцию, чтобы пользователи не меняли постоянно свои фотографии в профиле и не занимали место для хранения. Например, пользователь сможет запускать функцию, которая меняет фотографию профиля каждые 20 минут. Если пользователь попытается изменить фотографию своего профиля до истечения 20 минут, появится уведомление. Как я могу это сделать? Вы не могли бы мне помочь? Могу ли я сделать это с помощью if/else? Вот несколько кодов:

 void chooseProfileImage() {  showModalBottomSheet(  context: context,  builder: (BuildContext bc) {  return SafeArea(  child: Container(  child: new Wrap(  children: lt;Widgetgt;[  new ListTile(  leading: new Icon(Icons.photo_library),  title: new Text(  "From Gallery",  style: TextStyle(fontFamily: Constants.appFont),  ),  onTap: () {  proImgFromGallery();  Navigator.of(context).pop();  }),  new ListTile(  leading: new Icon(Icons.photo_camera),  title: new Text(  "From Camera",  style: TextStyle(fontFamily: Constants.appFont),  ),  onTap: () {  proImgFromCamera();  Navigator.of(context).pop();  }, . . .  

Комментарии:

1. Вы загружаете изображение на сервер, а пользовательские данные хранятся в базе данных, верно?

2. Да, верно. Он хранится в базе данных.

3. Я предполагаю, что могу запросить изменение пользователя через API, но если есть более простое решение, функция также может работать в зависимости от времени устройства пользователя.

Ответ №1:

Поскольку вы работаете с базой данных, вам следует добавить в таблицу пользователей новое поле, содержащее метку времени последнего изменения.

Другим вариантом может быть сохранение метки времени на устройстве, например, в общих настройках. Но это небезопасное решение, потому что пользователь может просто удалить данные приложения, и метка времени исчезнет.

С заданной меткой времени теперь вы можете выполнить условие if и решить, разрешать действие или нет.