@@ -6,6 +6,7 @@ import 'package:flutter/widgets.dart';
66
77import '../../codelessly_sdk.dart' ;
88import '../logging/debug_logger.dart' ;
9+ import '../logging/stat_tracker.dart' ;
910import '../utils/constants.dart' ;
1011
1112const List <String > privateDocumentFields = [
@@ -198,9 +199,6 @@ class FirestoreCloudDatabase extends CloudDatabase {
198199 /// Reference to the Firestore instance.
199200 final FirebaseFirestore firestore;
200201
201- /// Reference to the StatTracker instance, used to track reads and writes.
202- final StatTracker tracker;
203-
204202 /// Subscriptions to the streams that are being listened to.
205203 final List <StreamSubscription > _subscriptions = [];
206204
@@ -210,7 +208,6 @@ class FirestoreCloudDatabase extends CloudDatabase {
210208 super .identifier,
211209 super .publishSource, {
212210 required this .firestore,
213- required this .tracker,
214211 });
215212
216213 /// Initializes the cloud storage for the given [identifier] . This must be
@@ -228,14 +225,14 @@ class FirestoreCloudDatabase extends CloudDatabase {
228225
229226 // Create project doc if missing.
230227 final snapshot = await rootRef.get ();
231- tracker .trackRead ('cloudDatabase/init' );
228+ StatTracker .instance .trackRead ('cloudDatabase/init' );
232229
233230 // Do nothing if project doc exists.
234231 if (snapshot.exists) return ;
235232
236233 // Create project doc if it does not exist.
237234 await rootRef.set ({'project' : identifier});
238- tracker .trackWrite ('cloudDatabase/init' );
235+ StatTracker .instance .trackWrite ('cloudDatabase/init' );
239236
240237 DebugLogger .instance
241238 .printInfo ('Done initializing for $identifier ' , name: name);
@@ -317,7 +314,7 @@ class FirestoreCloudDatabase extends CloudDatabase {
317314 // Auto generate id if desired.
318315 if (autoGenerateId) {
319316 final document = await rootRef.collection (path).add (value);
320- tracker .trackWrite ('cloudDatabase/addDocument' );
317+ StatTracker .instance .trackWrite ('cloudDatabase/addDocument' );
321318
322319 DebugLogger .instance.printInfo (
323320 'Document added: ${document .path }' ,
@@ -340,7 +337,7 @@ class FirestoreCloudDatabase extends CloudDatabase {
340337
341338 // Get snapshot to check if document exists.
342339 final snapshot = await docRef.get ();
343- tracker .trackRead ('cloudDatabase/addDocument' );
340+ StatTracker .instance .trackRead ('cloudDatabase/addDocument' );
344341
345342 if (skipCreationIfDocumentExists && snapshot.exists) {
346343 DebugLogger .instance.printInfo (
@@ -352,7 +349,7 @@ class FirestoreCloudDatabase extends CloudDatabase {
352349
353350 // Set document.
354351 await docRef.set (value);
355- tracker .trackWrite ('cloudDatabase/addDocument' );
352+ StatTracker .instance .trackWrite ('cloudDatabase/addDocument' );
356353
357354 DebugLogger .instance.printInfo (
358355 'Document added: ${docRef .path }/$documentId ' ,
@@ -384,7 +381,7 @@ class FirestoreCloudDatabase extends CloudDatabase {
384381
385382 // TODO: Should we do update instead of set?
386383 await docRef.set (value, SetOptions (merge: true ));
387- tracker .trackWrite ('cloudDatabase/updateDocument' );
384+ StatTracker .instance .trackWrite ('cloudDatabase/updateDocument' );
388385
389386 DebugLogger .instance.printInfo (
390387 'Document updated: ${docRef .path }' ,
@@ -398,13 +395,13 @@ class FirestoreCloudDatabase extends CloudDatabase {
398395 final docRef = getDocPath (path, documentId);
399396
400397 final snapshot = await docRef.get ();
401- tracker .trackRead ('cloudDatabase/removeDocument' );
398+ StatTracker .instance .trackRead ('cloudDatabase/removeDocument' );
402399
403400 // TODO: Do we have to check for existence?
404401 if (! snapshot.exists) return false ;
405402
406403 await docRef.delete ();
407- tracker .trackWrite ('cloudDatabase/removeDocument' );
404+ StatTracker .instance .trackWrite ('cloudDatabase/removeDocument' );
408405
409406 return true ;
410407 }
@@ -415,7 +412,7 @@ class FirestoreCloudDatabase extends CloudDatabase {
415412 final docRef = getDocPath (path, documentId);
416413
417414 final snapshot = await docRef.get ();
418- tracker .trackRead ('cloudDatabase/getDocumentData' );
415+ StatTracker .instance .trackRead ('cloudDatabase/getDocumentData' );
419416
420417 final data = snapshot.data () ?? {};
421418 return sanitizeCloudDataForUse (data, docId: snapshot.id);
@@ -425,7 +422,7 @@ class FirestoreCloudDatabase extends CloudDatabase {
425422 Stream <Map <String , dynamic >> streamDocument (String path, String documentId) {
426423 final docRef = getDocPath (path, documentId);
427424 return docRef.snapshots ().map ((snapshot) {
428- tracker .trackRead ('cloudDatabase/streamDocument' );
425+ StatTracker .instance .trackRead ('cloudDatabase/streamDocument' );
429426
430427 return snapshot.data ()? .let (
431428 (value) => sanitizeCloudDataForUse (value, docId: snapshot.id)) ??
@@ -453,7 +450,8 @@ class FirestoreCloudDatabase extends CloudDatabase {
453450 // Listen to the stream and update the variable.
454451 final subscription = stream.listen (
455452 (data) {
456- tracker.trackRead ('cloudDatabase/streamDocumentToVariable' );
453+ StatTracker .instance
454+ .trackRead ('cloudDatabase/streamDocumentToVariable' );
457455
458456 DebugLogger .instance.printInfo (
459457 'Document stream update from cloud storage: $path /$documentId ' ,
@@ -536,7 +534,8 @@ class FirestoreCloudDatabase extends CloudDatabase {
536534 // Listen to the stream and update the variable.
537535 final subscription = stream.listen (
538536 (snapshot) {
539- tracker.trackRead ('cloudDatabase/streamCollectionToVariable' );
537+ StatTracker .instance
538+ .trackRead ('cloudDatabase/streamCollectionToVariable' );
540539
541540 final docs = snapshot.docs
542541 .map ((doc) => sanitizeCloudDataForUse (doc.data (), docId: doc.id))
0 commit comments