1
1
import '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' ;
3
4
4
- class AnalytcisManager {
5
+ class AnalytcisManager {
5
6
static final AnalytcisManager _instance = AnalytcisManager ._init ();
6
7
static AnalytcisManager get instance => _instance;
7
- AnalytcisManager ._init ();
8
+ AnalytcisManager ._init () {
9
+ init ();
10
+ }
11
+
12
+ static final _analytics = FirebaseAnalytics .instance;
8
13
9
- static final _analytics = FirebaseAnalytics ();
14
+ final List <NavigatorObserver > observer =
15
+ ApplicationConstants .TEST_MODE ? [] : [FirebaseAnalyticsObserver (analytics: _analytics)];
10
16
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
+ }
12
24
13
25
Future <void > customEvent (String name) async {
14
26
//her şey yapılabilir
15
- await observer.analytics .logEvent (name: name);
27
+ await _analytics .logEvent (name: name);
16
28
}
17
29
18
30
//USER ANALYTICS
19
31
//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
+
24
35
//kullanıcılara rol vermek için kullanılabilir (ADMİN-KULLANICI-PREMIUMS VS VS)
25
36
//bunu yapacaksak öncelikle
26
37
//firebase consola git
@@ -31,15 +42,15 @@ class AnalytcisManager{
31
42
//dimension name ya raporda gözükecek olan başlığı yaz
32
43
//descriptiona ufak bi açıklamasını yaz
33
44
if (name != null && value != null ) {
34
- await observer.analytics .setUserProperty (name: name, value: value);
45
+ await _analytics .setUserProperty (name: name, value: value);
35
46
}
36
47
}
37
48
38
49
Future <void > userLogin (String signUpMethod) async {
39
- await _analytics.logLogin (loginMethod: signUpMethod);
40
- }
50
+ await _analytics.logLogin (loginMethod: signUpMethod);
51
+ }
41
52
42
53
Future <void > userSignUp (String signUpMethod) async {
43
- await observer.analytics .logSignUp (signUpMethod: signUpMethod);
54
+ await _analytics .logSignUp (signUpMethod: signUpMethod);
44
55
}
45
- }
56
+ }
0 commit comments