josssssss
This commit is contained in:
parent
ea24df2e53
commit
015ff0da93
|
|
@ -11,13 +11,28 @@ class FirebaseMonitoringRepo implements MonitoringRepository {
|
|||
// Satu fungsi untuk semua jenis sensor
|
||||
// Kamu cukup masukkan "path" database-nya saja
|
||||
@override
|
||||
Stream<DatabaseEvent> getSensorStream(String path) {
|
||||
return _db.ref(path).onValue;
|
||||
Stream<T> getSensorStream<T>(
|
||||
String path,
|
||||
T Function(Map<dynamic, dynamic> json) mapper,
|
||||
) {
|
||||
/// === ambil data mentah dari firebase === ///
|
||||
return _db.ref(path).onValue.map((event) {
|
||||
/// == ambil value-nya dan pastikan tipenya map == ///
|
||||
final data = event.snapshot.value as Map<dynamic, dynamic>? ?? {};
|
||||
|
||||
/// == masukan ke dalam "pabrik" (mapper) agar jadi objek == ///
|
||||
return mapper(data);
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
// Jika ingin mengambil data sekali saja (bukan stream)
|
||||
Future<DataSnapshot> getSensorSnapshot(String path) async {
|
||||
return await _db.ref(path).get();
|
||||
Future<T> getSensorSnapshot<T>(
|
||||
String path,
|
||||
T Function(Map<dynamic, dynamic> json) mapper,
|
||||
) async {
|
||||
final snapshot = await _db.ref(path).get();
|
||||
final data = snapshot.value as Map<dynamic, dynamic>? ?? {};
|
||||
return mapper(data);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1,3 @@
|
|||
export 'wind_speed.dart';
|
||||
export 'evaporasi.dart';
|
||||
export 'pressure_sensor.dart';
|
||||
|
|
|
|||
|
|
@ -1,7 +1,14 @@
|
|||
import 'package:firebase_database/firebase_database.dart';
|
||||
import 'models/models.dart';
|
||||
|
||||
abstract class MonitoringRepository {
|
||||
Stream<DatabaseEvent> getSensorStream(String path);
|
||||
Stream<T> getSensorStream<T>(
|
||||
String path,
|
||||
T Function(Map<dynamic, dynamic> json) mapper,
|
||||
);
|
||||
|
||||
Future<DataSnapshot> getSensorSnapshot(String path);
|
||||
Future<T> getSensorSnapshot<T>(
|
||||
String path,
|
||||
T Function(Map<dynamic, dynamic> json) mapper,
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue