import 'package:flutter/material.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_database/firebase_database.dart'; import 'package:workmanager/workmanager.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:ta_kebakaran_aplikasi/pages/home_satpam.dart'; Future firebaseDatabaseCheck() async { final databaseReference = FirebaseDatabase.instance.ref(); final DatabaseEvent event = await databaseReference.once(); // Assuming your data structure final Map data = event.snapshot.value as Map; final flameValue = data['flameValue']; final smokeDetected = data['smokeDetected']; if (flameValue == 2 || smokeDetected == 2) { _showNotification('Peringatan', 'Ada indikasi kebakaran'); } } void callbackDispatcher() { Workmanager().executeTask((task, inputData) { firebaseDatabaseCheck(); return Future.value(true); }); } final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin(); void _showNotification(String title, String body) async { const AndroidNotificationDetails androidPlatformChannelSpecifics = AndroidNotificationDetails('your_channel_id', 'your_channel_name', channelDescription: 'your_channel_description', importance: Importance.max, priority: Priority.high, ticker: 'ticker'); const NotificationDetails platformChannelSpecifics = NotificationDetails(android: androidPlatformChannelSpecifics); await flutterLocalNotificationsPlugin.show( 0, title, body, platformChannelSpecifics, payload: 'item x', ); } void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); final initializationSettingsAndroid = AndroidInitializationSettings('@mipmap/ic_launcher'); final initializationSettings = InitializationSettings( android: initializationSettingsAndroid, ); flutterLocalNotificationsPlugin.initialize(initializationSettings); Workmanager().initialize( callbackDispatcher, isInDebugMode: true, // True untuk pengembangan, false untuk produksi ); Workmanager().registerPeriodicTask( "1", "simplePeriodicTask", frequency: Duration(minutes: 15), ); runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: HomeSatpam(), ); } }