Skip to content

Commit 513022a

Browse files
committed
extract firebase calls into separate service
1 parent 5579554 commit 513022a

File tree

3 files changed

+23
-10
lines changed

3 files changed

+23
-10
lines changed

lib/screens/fhir.screen.dart

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'package:cloud_firestore/cloud_firestore.dart';
22
import 'package:flutter/material.dart';
33
import 'package:get/get.dart';
4+
import 'package:symptom_tracker/services/services.dart';
45

56
import 'package:symptom_tracker/shared/shared.dart';
67

@@ -32,17 +33,20 @@ class FhirScreen extends StatelessWidget {
3233
Widget _firebaseStream() {
3334
return Padding(
3435
padding: const EdgeInsets.symmetric(vertical: 24),
35-
child: StreamBuilder(
36-
stream: Firestore.instance.collection('collection').document('document').snapshots(),
37-
builder: (context, snapshot) {
38-
if (!snapshot.hasData) {
39-
return CircularProgressIndicator();
40-
}
36+
child: GetBuilder<FirebaseService>(
37+
init: FirebaseService(),
38+
builder: (fbService) => StreamBuilder(
39+
stream: fbService.fbHelloStream,
40+
builder: (context, snapshot) {
41+
if (!snapshot.hasData) {
42+
return CircularProgressIndicator();
43+
}
4144

42-
// find the field named 'field', return this
43-
Map<String, dynamic> documentFields = snapshot.data.data;
44-
return Text(documentFields['field'], textAlign: TextAlign.center);
45-
},
45+
// find the field named 'field', return this
46+
Map<String, dynamic> documentFields = snapshot.data.data;
47+
return Text(documentFields['field'], textAlign: TextAlign.center);
48+
},
49+
),
4650
),
4751
);
4852
}

lib/services/firebase.service.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import 'package:cloud_firestore/cloud_firestore.dart';
2+
import 'package:get/get.dart';
3+
4+
class FirebaseService extends GetController {
5+
// Get should automatically call dispose
6+
Stream<DocumentSnapshot> get fbHelloStream =>
7+
Firestore.instance.collection('collection').document('document').snapshots();
8+
}

lib/services/services.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
export 'firebase.service.dart';
12
export 'symptom.model.dart';
23
export 'symptom.service.dart';

0 commit comments

Comments
 (0)