diff --git a/android/app/build.gradle b/android/app/build.gradle index 5048cfb..82c173a 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,5 +1,8 @@ plugins { id "com.android.application" + // START: FlutterFire Configuration + // id 'com.google.gms.google-services' + // END: FlutterFire Configuration id "kotlin-android" id "dev.flutter.flutter-gradle-plugin" } @@ -28,6 +31,16 @@ if (keystorePropertiesFile.exists()) { keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) } +configurations.all { + resolutionStrategy { + eachDependency { + if ((requested.group == "org.jetbrains.kotlin") && (requested.name.startsWith("kotlin-stdlib"))) { + useVersion("1.8.0") + } + } + } +} + android { namespace "dev.thecodexhub.sudoku" compileSdkVersion flutter.compileSdkVersion diff --git a/android/app/google-services.json b/android/app/google-services.json new file mode 100644 index 0000000..c2a9637 --- /dev/null +++ b/android/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "1047240251784", + "project_id": "sudoku-gemini", + "storage_bucket": "sudoku-gemini.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:1047240251784:android:1ed17c169825484883c23d", + "android_client_info": { + "package_name": "dev.thecodexhub.sudoku" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyCZa-L5uhYmCMUVrShOKf0ADfiCSomIoLk" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} diff --git a/android/settings.gradle b/android/settings.gradle index 1d6d19b..816dbe0 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -20,6 +20,9 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "7.3.0" apply false + // START: FlutterFire Configuration + id "com.google.gms.google-services" version "4.3.15" apply false + // END: FlutterFire Configuration id "org.jetbrains.kotlin.android" version "1.7.10" apply false } diff --git a/ios/Podfile b/ios/Podfile index d97f17e..3e44f9c 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '12.0' +platform :ios, '13.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/ios/Podfile.lock b/ios/Podfile.lock index dfe38e7..9ac395f 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,18 +1,50 @@ PODS: + - Firebase/CoreOnly (10.29.0): + - FirebaseCore (= 10.29.0) + - firebase_core (3.3.0): + - Firebase/CoreOnly (= 10.29.0) + - Flutter + - FirebaseCore (10.29.0): + - FirebaseCoreInternal (~> 10.0) + - GoogleUtilities/Environment (~> 7.12) + - GoogleUtilities/Logger (~> 7.12) + - FirebaseCoreInternal (10.29.0): + - "GoogleUtilities/NSData+zlib (~> 7.8)" - Flutter (1.0.0) + - GoogleUtilities/Environment (7.13.3): + - GoogleUtilities/Privacy + - PromisesObjC (< 3.0, >= 1.2) + - GoogleUtilities/Logger (7.13.3): + - GoogleUtilities/Environment + - GoogleUtilities/Privacy + - "GoogleUtilities/NSData+zlib (7.13.3)": + - GoogleUtilities/Privacy + - GoogleUtilities/Privacy (7.13.3) - path_provider_foundation (0.0.1): - Flutter - FlutterMacOS + - PromisesObjC (2.4.0) - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS DEPENDENCIES: + - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - Flutter (from `Flutter`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) +SPEC REPOS: + trunk: + - Firebase + - FirebaseCore + - FirebaseCoreInternal + - GoogleUtilities + - PromisesObjC + EXTERNAL SOURCES: + firebase_core: + :path: ".symlinks/plugins/firebase_core/ios" Flutter: :path: Flutter path_provider_foundation: @@ -21,10 +53,16 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/shared_preferences_foundation/darwin" SPEC CHECKSUMS: + Firebase: cec914dab6fd7b1bd8ab56ea07ce4e03dd251c2d + firebase_core: 57aeb91680e5d5e6df6b888064be7c785f146efb + FirebaseCore: 30e9c1cbe3d38f5f5e75f48bfcea87d7c358ec16 + FirebaseCoreInternal: df84dd300b561c27d5571684f389bf60b0a5c934 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15 path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 -PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796 +PODFILE CHECKSUM: a57f30d18f102dd3ce366b1d62a55ecbef2158e5 COCOAPODS: 1.13.0 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 8159a90..de6a76a 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -12,6 +12,7 @@ 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 5C0C883365A74E66A21832EF /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14BDFF4A9FBDAED011DC4D1B /* Pods_Runner.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 84794D313504100FA40500FA /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 7EC3A91B492DCD59C96A20C9 /* GoogleService-Info.plist */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; @@ -61,6 +62,7 @@ 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7DBB764AD6C65B3C25C23C10 /* Pods-RunnerTests.debug-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug-development.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug-development.xcconfig"; sourceTree = ""; }; + 7EC3A91B492DCD59C96A20C9 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; 81E39C638037771200F32E70 /* Pods-Runner.release-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-development.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-development.xcconfig"; sourceTree = ""; }; 89A395A321872B6E063A498A /* Pods-Runner.profile-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-development.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-development.xcconfig"; sourceTree = ""; }; 92E8B8128E94B43933123450 /* Pods-Runner.profile-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-staging.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-staging.xcconfig"; sourceTree = ""; }; @@ -136,6 +138,7 @@ 331C8082294A63A400263BE5 /* RunnerTests */, EBE5746596C64281CFA0DE38 /* Pods */, 5EEC1B8D36092A51EED463FC /* Frameworks */, + 7EC3A91B492DCD59C96A20C9 /* GoogleService-Info.plist */, ); sourceTree = ""; }; @@ -288,6 +291,7 @@ 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + 84794D313504100FA40500FA /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ios/Runner/GoogleService-Info.plist b/ios/Runner/GoogleService-Info.plist new file mode 100644 index 0000000..215fbe2 --- /dev/null +++ b/ios/Runner/GoogleService-Info.plist @@ -0,0 +1,30 @@ + + + + + API_KEY + AIzaSyB7yC-6iKsMLjlsRHG6HI0_qNCUCkMVhLs + GCM_SENDER_ID + 1047240251784 + PLIST_VERSION + 1 + BUNDLE_ID + dev.thecodexhub.sudoku + PROJECT_ID + sudoku-gemini + STORAGE_BUCKET + sudoku-gemini.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:1047240251784:ios:9ec726836eedb77b83c23d + + \ No newline at end of file diff --git a/lib/firebase_options_development.dart b/lib/firebase_options_development.dart new file mode 100644 index 0000000..11f78de --- /dev/null +++ b/lib/firebase_options_development.dart @@ -0,0 +1,75 @@ +// File generated by FlutterFire CLI. +// ignore_for_file: type=lint +import 'package:firebase_core/firebase_core.dart' show FirebaseOptions; +import 'package:flutter/foundation.dart' + show defaultTargetPlatform, kIsWeb, TargetPlatform; + +/// Default [FirebaseOptions] for use with your Firebase apps. +/// +/// Example: +/// ```dart +/// import 'firebase_options_development.dart'; +/// // ... +/// await Firebase.initializeApp( +/// options: DefaultFirebaseOptions.currentPlatform, +/// ); +/// ``` +class DefaultFirebaseOptions { + static FirebaseOptions get currentPlatform { + if (kIsWeb) { + return web; + } + switch (defaultTargetPlatform) { + case TargetPlatform.android: + return android; + case TargetPlatform.iOS: + return ios; + case TargetPlatform.macOS: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for macos - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.windows: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for windows - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.linux: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for linux - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + default: + throw UnsupportedError( + 'DefaultFirebaseOptions are not supported for this platform.', + ); + } + } + + static const FirebaseOptions web = FirebaseOptions( + apiKey: 'AIzaSyA8QwjgMLGGoqrC18EqYNNelHAFqun--xo', + appId: '1:625889474527:web:7d83cf9da61a04194f766a', + messagingSenderId: '625889474527', + projectId: 'sudoku-gemini-dev', + authDomain: 'sudoku-gemini-dev.firebaseapp.com', + storageBucket: 'sudoku-gemini-dev.appspot.com', + measurementId: 'G-SYEEE9PEK5', + ); + + static const FirebaseOptions android = FirebaseOptions( + apiKey: 'AIzaSyDaxrZceIou6lhQUWfryVkOlxAocWwPW4c', + appId: '1:625889474527:android:37572e6f3ee666b34f766a', + messagingSenderId: '625889474527', + projectId: 'sudoku-gemini-dev', + storageBucket: 'sudoku-gemini-dev.appspot.com', + ); + + static const FirebaseOptions ios = FirebaseOptions( + apiKey: 'AIzaSyBDePWlqScHvs5zyTlABennhNqI5Mf_pvI', + appId: '1:625889474527:ios:46175ffdaa2a35dc4f766a', + messagingSenderId: '625889474527', + projectId: 'sudoku-gemini-dev', + storageBucket: 'sudoku-gemini-dev.appspot.com', + iosBundleId: 'dev.thecodexhub.sudoku.dev', + ); +} diff --git a/lib/firebase_options_production.dart b/lib/firebase_options_production.dart new file mode 100644 index 0000000..0b524c8 --- /dev/null +++ b/lib/firebase_options_production.dart @@ -0,0 +1,76 @@ +// File generated by FlutterFire CLI. +// ignore_for_file: type=lint +import 'package:firebase_core/firebase_core.dart' show FirebaseOptions; +import 'package:flutter/foundation.dart' + show defaultTargetPlatform, kIsWeb, TargetPlatform; + +/// Default [FirebaseOptions] for use with your Firebase apps. +/// +/// Example: +/// ```dart +/// import 'firebase_options_production.dart'; +/// // ... +/// await Firebase.initializeApp( +/// options: DefaultFirebaseOptions.currentPlatform, +/// ); +/// ``` +class DefaultFirebaseOptions { + static FirebaseOptions get currentPlatform { + if (kIsWeb) { + return web; + } + switch (defaultTargetPlatform) { + case TargetPlatform.android: + return android; + case TargetPlatform.iOS: + return ios; + case TargetPlatform.macOS: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for macos - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.windows: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for windows - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.linux: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for linux - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + default: + throw UnsupportedError( + 'DefaultFirebaseOptions are not supported for this platform.', + ); + } + } + + static const FirebaseOptions web = FirebaseOptions( + apiKey: 'AIzaSyD1YuSZUyp7ltXaztIIT6OaMr_JJmZm9TA', + appId: '1:1047240251784:web:f80d96536b03020183c23d', + messagingSenderId: '1047240251784', + projectId: 'sudoku-gemini', + authDomain: 'sudoku-gemini.firebaseapp.com', + storageBucket: 'sudoku-gemini.appspot.com', + measurementId: 'G-ZCZXFSFVYB', + ); + + static const FirebaseOptions android = FirebaseOptions( + apiKey: 'AIzaSyCZa-L5uhYmCMUVrShOKf0ADfiCSomIoLk', + appId: '1:1047240251784:android:1ed17c169825484883c23d', + messagingSenderId: '1047240251784', + projectId: 'sudoku-gemini', + storageBucket: 'sudoku-gemini.appspot.com', + ); + + static const FirebaseOptions ios = FirebaseOptions( + apiKey: 'AIzaSyB7yC-6iKsMLjlsRHG6HI0_qNCUCkMVhLs', + appId: '1:1047240251784:ios:9ec726836eedb77b83c23d', + messagingSenderId: '1047240251784', + projectId: 'sudoku-gemini', + storageBucket: 'sudoku-gemini.appspot.com', + iosBundleId: 'dev.thecodexhub.sudoku', + ); + +} \ No newline at end of file diff --git a/lib/firebase_options_staging.dart b/lib/firebase_options_staging.dart new file mode 100644 index 0000000..bd8d95d --- /dev/null +++ b/lib/firebase_options_staging.dart @@ -0,0 +1,75 @@ +// File generated by FlutterFire CLI. +// ignore_for_file: type=lint +import 'package:firebase_core/firebase_core.dart' show FirebaseOptions; +import 'package:flutter/foundation.dart' + show defaultTargetPlatform, kIsWeb, TargetPlatform; + +/// Default [FirebaseOptions] for use with your Firebase apps. +/// +/// Example: +/// ```dart +/// import 'firebase_options_staging.dart'; +/// // ... +/// await Firebase.initializeApp( +/// options: DefaultFirebaseOptions.currentPlatform, +/// ); +/// ``` +class DefaultFirebaseOptions { + static FirebaseOptions get currentPlatform { + if (kIsWeb) { + return web; + } + switch (defaultTargetPlatform) { + case TargetPlatform.android: + return android; + case TargetPlatform.iOS: + return ios; + case TargetPlatform.macOS: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for macos - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.windows: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for windows - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.linux: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for linux - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + default: + throw UnsupportedError( + 'DefaultFirebaseOptions are not supported for this platform.', + ); + } + } + + static const FirebaseOptions web = FirebaseOptions( + apiKey: 'AIzaSyAoHpi_z6v2Wbltn-SOHTypZ45nRsssRdY', + appId: '1:316874251532:web:7c742219a94130ea6efd29', + messagingSenderId: '316874251532', + projectId: 'sudoku-gemini-stg', + authDomain: 'sudoku-gemini-stg.firebaseapp.com', + storageBucket: 'sudoku-gemini-stg.appspot.com', + measurementId: 'G-M1SC3KCQD7', + ); + + static const FirebaseOptions android = FirebaseOptions( + apiKey: 'AIzaSyB0d1vG626m4Kp37IDBqjz8HxtIStU-BzQ', + appId: '1:316874251532:android:fd0708e8a0c0a4276efd29', + messagingSenderId: '316874251532', + projectId: 'sudoku-gemini-stg', + storageBucket: 'sudoku-gemini-stg.appspot.com', + ); + + static const FirebaseOptions ios = FirebaseOptions( + apiKey: 'AIzaSyBvy60lxcy1AirxhI04Lbr8LXH6Wmuyjj0', + appId: '1:316874251532:ios:c4c2f2bf54a201d26efd29', + messagingSenderId: '316874251532', + projectId: 'sudoku-gemini-stg', + storageBucket: 'sudoku-gemini-stg.appspot.com', + iosBundleId: 'dev.thecodexhub.sudoku.stg', + ); +} diff --git a/lib/main_development.dart b/lib/main_development.dart index 8456889..3e9b7b3 100644 --- a/lib/main_development.dart +++ b/lib/main_development.dart @@ -1,5 +1,6 @@ import 'dart:async'; +import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/widgets.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:sudoku/api/api.dart'; @@ -7,12 +8,18 @@ import 'package:sudoku/app/app.dart'; import 'package:sudoku/bootstrap.dart'; import 'package:sudoku/cache/cache.dart'; import 'package:sudoku/env/env.dart'; +import 'package:sudoku/firebase_options_development.dart'; import 'package:sudoku/repository/repository.dart'; import 'package:sudoku/storage/storage.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); + await Firebase.initializeApp( + name: 'sudoku-gemini-dev', + options: DefaultFirebaseOptions.currentPlatform, + ); + unawaited( bootstrap(() async { final apiClient = SudokuDioClient(baseUrl: Env.apiBaseUrl); diff --git a/lib/main_production.dart b/lib/main_production.dart index 8456889..369c268 100644 --- a/lib/main_production.dart +++ b/lib/main_production.dart @@ -1,5 +1,6 @@ import 'dart:async'; +import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/widgets.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:sudoku/api/api.dart'; @@ -7,12 +8,18 @@ import 'package:sudoku/app/app.dart'; import 'package:sudoku/bootstrap.dart'; import 'package:sudoku/cache/cache.dart'; import 'package:sudoku/env/env.dart'; +import 'package:sudoku/firebase_options_production.dart'; import 'package:sudoku/repository/repository.dart'; import 'package:sudoku/storage/storage.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); + await Firebase.initializeApp( + name: 'sudoku-gemini', + options: DefaultFirebaseOptions.currentPlatform, + ); + unawaited( bootstrap(() async { final apiClient = SudokuDioClient(baseUrl: Env.apiBaseUrl); diff --git a/lib/main_staging.dart b/lib/main_staging.dart index 8456889..51cc315 100644 --- a/lib/main_staging.dart +++ b/lib/main_staging.dart @@ -1,5 +1,6 @@ import 'dart:async'; +import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/widgets.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:sudoku/api/api.dart'; @@ -7,12 +8,18 @@ import 'package:sudoku/app/app.dart'; import 'package:sudoku/bootstrap.dart'; import 'package:sudoku/cache/cache.dart'; import 'package:sudoku/env/env.dart'; +import 'package:sudoku/firebase_options_staging.dart'; import 'package:sudoku/repository/repository.dart'; import 'package:sudoku/storage/storage.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); + await Firebase.initializeApp( + name: 'sudoku-gemini-stg', + options: DefaultFirebaseOptions.currentPlatform, + ); + unawaited( bootstrap(() async { final apiClient = SudokuDioClient(baseUrl: Env.apiBaseUrl); diff --git a/pubspec.lock b/pubspec.lock index 0d1a8a2..b4d965c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -265,6 +265,30 @@ packages: url: "https://pub.dev" source: hosted version: "7.0.0" + firebase_core: + dependency: "direct main" + description: + name: firebase_core + sha256: "3187f4f8e49968573fd7403011dca67ba95aae419bc0d8131500fae160d94f92" + url: "https://pub.dev" + source: hosted + version: "3.3.0" + firebase_core_platform_interface: + dependency: transitive + description: + name: firebase_core_platform_interface + sha256: "3c3a1e92d6f4916c32deea79c4a7587aa0e9dbbe5889c7a16afcf005a485ee02" + url: "https://pub.dev" + source: hosted + version: "5.2.0" + firebase_core_web: + dependency: transitive + description: + name: firebase_core_web + sha256: e8d1e22de72cb21cdcfc5eed7acddab3e99cd83f3b317f54f7a96c32f25fd11e + url: "https://pub.dev" + source: hosted + version: "2.17.4" fixnum: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 47ab4c7..4e261fb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -12,6 +12,7 @@ dependencies: envied: ^0.5.4+1 equatable: ^2.0.5 fake_async: ^1.3.1 + firebase_core: ^3.3.0 flutter: sdk: flutter flutter_bloc: ^8.1.4