Я использую плагин локального уведомления flutter, чтобы уведомить пользователя о начале события.
Все события сохраняются в firebase с указанием даты и времени.
Если пользователь добавляет событие в свое расписание он получает уведомление.
Моя проблема в том, что плагину локального уведомления требуется int в параметре, а в firebase у меня есть тип идентификатора String (событие добавляется в firebase с другое веб-приложение, которое генерирует String ID).
Итак, есть ли способ заставить уведомление работать с String ID?
Это база данных:
введите описание изображения здесь
lass DetailScreen extends StatefulWidget {
final String id;
DetailScreen(this.id);
@override
_DetailScreenState createState() => _DetailScreenState();
}
class _DetailScreenState extends State<DetailScreen> {
String firstHalf;
String secondHalf;
bool flag = true;
int selectedValue;
bool isScheduled = false;
bool isLoading = true;
initState() {
selectedValue = 0;
Future.delayed(Duration(seconds: 0), () async {
await getStatus();
final response = await flutterLocalNotificationsPlugin
.getNotificationAppLaunchDetails();
if (response.didNotificationLaunchApp) {
await Provider.of<ShowsModel>(context, listen: false).getShows();
await Provider.of<ChannelModel>(context, listen: false).getChannels();
}
setState(() {
isLoading = false;
});
});
super.initState();
}
showNotification(String title, DateTime showTime) async {
var android = AndroidNotificationDetails(
'channel id', 'channel name', 'channel description',
enableVibration: true,
playSound: true,
importance: Importance.High,
priority: Priority.High);
var iOS = IOSNotificationDetails();
var platform = NotificationDetails(android, iOS);
new DateTime.now().add(Duration(seconds: 10));
await flutterLocalNotificationsPlugin.schedule(
int.parse(widget.id),
title,
'The show is about to start in 15 minutes',
showTime.subtract(Duration(minutes: 15)),
platform,
payload: widget.id);
}