11import 'package:firebase_analytics/firebase_analytics.dart' ;
2- import 'package:firebase_analytics/observer.dart' ;
2+ import 'package:flutter/material.dart' ;
3+ import 'package:fluttermvvmtemplate/core/constants/app/app_constants.dart' ;
34
4- class AnalytcisManager {
5+ class AnalytcisManager {
56 static final AnalytcisManager _instance = AnalytcisManager ._init ();
67 static AnalytcisManager get instance => _instance;
7- AnalytcisManager ._init ();
8+ AnalytcisManager ._init () {
9+ init ();
10+ }
11+
12+ static final _analytics = FirebaseAnalytics .instance;
813
9- static final _analytics = FirebaseAnalytics ();
14+ final List <NavigatorObserver > observer =
15+ ApplicationConstants .TEST_MODE ? [] : [FirebaseAnalyticsObserver (analytics: _analytics)];
1016
11- final observer = FirebaseAnalyticsObserver (analytics: _analytics);
17+ // Firebase e her zaman veri göndermek istemeyebiliriz.
18+ // Örneğin inapppurchase yapacağımızda ApplicationConstants.TEST_MODE false olursa
19+ // gerçekten ödeme yapılmış gibi ücret bilgisi yansır.
20+ // Bu istenmeyen bir durumdur, gerçek verileri manipüle eder..
21+ Future <void > init () async {
22+ await _analytics.setAnalyticsCollectionEnabled (ApplicationConstants .TEST_MODE ? false : true );
23+ }
1224
1325 Future <void > customEvent (String name) async {
1426 //her şey yapılabilir
15- await observer.analytics .logEvent (name: name);
27+ await _analytics .logEvent (name: name);
1628 }
1729
1830 //USER ANALYTICS
1931 //kayıt sırasında user ıd yi almak için
20- Future setUserAnalytics (
21- { String userID, String name, String value}) async {
22- await _analytics.setUserId (userID);
23-
32+ Future setUserAnalytics ({String ? userID, String ? name, String ? value}) async {
33+ await _analytics.setUserId (id: userID);
34+
2435//kullanıcılara rol vermek için kullanılabilir (ADMİN-KULLANICI-PREMIUMS VS VS)
2536//bunu yapacaksak öncelikle
2637//firebase consola git
@@ -31,15 +42,15 @@ class AnalytcisManager{
3142//dimension name ya raporda gözükecek olan başlığı yaz
3243//descriptiona ufak bi açıklamasını yaz
3344 if (name != null && value != null ) {
34- await observer.analytics .setUserProperty (name: name, value: value);
45+ await _analytics .setUserProperty (name: name, value: value);
3546 }
3647 }
3748
3849 Future <void > userLogin (String signUpMethod) async {
39- await _analytics.logLogin (loginMethod: signUpMethod);
40- }
50+ await _analytics.logLogin (loginMethod: signUpMethod);
51+ }
4152
4253 Future <void > userSignUp (String signUpMethod) async {
43- await observer.analytics .logSignUp (signUpMethod: signUpMethod);
54+ await _analytics .logSignUp (signUpMethod: signUpMethod);
4455 }
45- }
56+ }
0 commit comments