116 lines
3.5 KiB
Dart
116 lines
3.5 KiB
Dart
//<com>
|
|
import 'package:firebase_analytics/firebase_analytics.dart';
|
|
import 'package:firebase_core/firebase_core.dart'
|
|
show Firebase, FirebaseOptions;
|
|
import 'package:flutter/foundation.dart'
|
|
show defaultTargetPlatform, kIsWeb, TargetPlatform;
|
|
import 'package:star_lock/flavors.dart';
|
|
|
|
class DefaultFirebaseOptions {
|
|
static FirebaseOptions get currentPlatform {
|
|
switch (F.appFlavor) {
|
|
case Flavor.sky:
|
|
return sky_android;
|
|
case Flavor.xhj_bundle:
|
|
return xhj_android;
|
|
default:
|
|
throw UnsupportedError(
|
|
'DefaultFirebaseOptions are not supported for this platform.',
|
|
);
|
|
}
|
|
}
|
|
|
|
static const FirebaseOptions sky_android = FirebaseOptions(
|
|
apiKey: 'AIzaSyC-3-ABWuy9LrYyAw_KxDRto4DanQ0sq9g',
|
|
appId: '1:281500445726:android:ddf52ac7b7f83cf5c4d20f',
|
|
messagingSenderId: '281500445726',
|
|
projectId: 'smart-lock-12b8c',
|
|
storageBucket: 'skychip2023-ecdff.firebasestorage.app',
|
|
);
|
|
|
|
static const FirebaseOptions xhj_android = FirebaseOptions(
|
|
apiKey: 'AIzaSyAm8dJlBY5hjslJDVDBNd2bkWrJlGjAMqw',
|
|
appId: '1:448746601330:android:1a8056175e1dad5e317beb',
|
|
messagingSenderId: '448746601330',
|
|
projectId: 'smart-lock-12b8c',
|
|
storageBucket: 'smart-lock-12b8c.firebasestorage.app',
|
|
);
|
|
|
|
static const FirebaseOptions ios = FirebaseOptions(
|
|
apiKey: 'AIzaSyACbp5aUKhLU1SMg8iIdm9WmNX7wxI7fVc',
|
|
appId: '1:281500445726:ios:b194ccffb92fb86cc4d20f',
|
|
messagingSenderId: '281500445726',
|
|
projectId: 'skychip2023-ecdff',
|
|
storageBucket: 'skychip2023-ecdff.firebasestorage.app',
|
|
iosBundleId: 'com.starlock.lock.local',
|
|
);
|
|
}
|
|
|
|
class FirebaseHelper {
|
|
factory FirebaseHelper() => _getInstance();
|
|
|
|
FirebaseHelper._internal();
|
|
|
|
static FirebaseHelper get instance => _getInstance();
|
|
static FirebaseHelper? _instance;
|
|
|
|
static FirebaseHelper _getInstance() {
|
|
_instance ??= FirebaseHelper._internal();
|
|
return _instance!;
|
|
}
|
|
|
|
Future<void> initApp() async {
|
|
const bool isProductVmMode = bool.fromEnvironment('dart.vm.product');
|
|
if (F.isProductionEnv &&
|
|
isProductVmMode &&
|
|
defaultTargetPlatform == TargetPlatform.android) {
|
|
await Firebase.initializeApp(
|
|
options: DefaultFirebaseOptions.currentPlatform,
|
|
);
|
|
}
|
|
}
|
|
|
|
Future<void> initSdk() async {
|
|
const bool isProductVmMode = bool.fromEnvironment('dart.vm.product');
|
|
if (F.isProductionEnv &&
|
|
isProductVmMode &&
|
|
defaultTargetPlatform == TargetPlatform.android) {
|
|
FirebaseAnalytics.instance.setAnalyticsCollectionEnabled(true);
|
|
}
|
|
}
|
|
|
|
Future<void> login(String userId) async {
|
|
const bool isProductVmMode = bool.fromEnvironment('dart.vm.product');
|
|
if (F.isProductionEnv &&
|
|
isProductVmMode &&
|
|
defaultTargetPlatform == TargetPlatform.android) {
|
|
FirebaseAnalytics.instance.setUserId(id: userId);
|
|
}
|
|
}
|
|
|
|
Future<void> trackEvent(
|
|
String eventName,
|
|
Map<String, Object>? parameters,
|
|
) async {
|
|
const bool isProductVmMode = bool.fromEnvironment('dart.vm.product');
|
|
if (F.isProductionEnv &&
|
|
isProductVmMode &&
|
|
defaultTargetPlatform == TargetPlatform.android) {
|
|
FirebaseAnalytics.instance.logEvent(
|
|
name: eventName,
|
|
parameters: parameters,
|
|
);
|
|
}
|
|
}
|
|
|
|
Future<void> logout() async {
|
|
const bool isProductVmMode = bool.fromEnvironment('dart.vm.product');
|
|
if (F.isProductionEnv &&
|
|
isProductVmMode &&
|
|
defaultTargetPlatform == TargetPlatform.android) {
|
|
FirebaseAnalytics.instance.setUserId(id: '');
|
|
}
|
|
}
|
|
}
|
|
//</com>
|