app-starlock/lib/apm/firebase/firebase_helper.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>