josssssss
This commit is contained in:
parent
ea24df2e53
commit
015ff0da93
|
|
@ -11,13 +11,28 @@ class FirebaseMonitoringRepo implements MonitoringRepository {
|
||||||
// Satu fungsi untuk semua jenis sensor
|
// Satu fungsi untuk semua jenis sensor
|
||||||
// Kamu cukup masukkan "path" database-nya saja
|
// Kamu cukup masukkan "path" database-nya saja
|
||||||
@override
|
@override
|
||||||
Stream<DatabaseEvent> getSensorStream(String path) {
|
Stream<T> getSensorStream<T>(
|
||||||
return _db.ref(path).onValue;
|
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
|
@override
|
||||||
// Jika ingin mengambil data sekali saja (bukan stream)
|
// Jika ingin mengambil data sekali saja (bukan stream)
|
||||||
Future<DataSnapshot> getSensorSnapshot(String path) async {
|
Future<T> getSensorSnapshot<T>(
|
||||||
return await _db.ref(path).get();
|
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 'wind_speed.dart';
|
||||||
|
export 'evaporasi.dart';
|
||||||
|
export 'pressure_sensor.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,14 @@
|
||||||
import 'package:firebase_database/firebase_database.dart';
|
import 'package:firebase_database/firebase_database.dart';
|
||||||
|
import 'models/models.dart';
|
||||||
|
|
||||||
abstract class MonitoringRepository {
|
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