diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..4bec4ea
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..a55e7a1
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/analysis_options.yaml b/analysis_options.yaml
index d767e5d..85629ea 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -1,4 +1,5 @@
include: package:very_good_analysis/analysis_options.4.0.0.yaml
+
linter:
rules:
public_member_api_docs: false
diff --git a/android/app/google-services.json b/android/app/src/development/google-services.json
similarity index 100%
rename from android/app/google-services.json
rename to android/app/src/development/google-services.json
diff --git a/android/app/src/main/google-services.json b/android/app/src/main/google-services.json
new file mode 100644
index 0000000..00b1440
--- /dev/null
+++ b/android/app/src/main/google-services.json
@@ -0,0 +1,46 @@
+{
+ "project_info": {
+ "project_number": "416647339946",
+ "project_id": "flutter-explained-community",
+ "storage_bucket": "flutter-explained-community.appspot.com"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:416647339946:android:3b8cbe30444a07bbc9d5d3",
+ "android_client_info": {
+ "package_name": "dev.flutterexplained.community_app"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "416647339946-pcveajdsiu5vvsvhuil30jp316kvba35.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyBarisN1l9qgQtmg1hzcEC3FRGw_PrUt8A"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "416647339946-pcveajdsiu5vvsvhuil30jp316kvba35.apps.googleusercontent.com",
+ "client_type": 3
+ },
+ {
+ "client_id": "416647339946-58vodha5kfr0oh3v6343dd7pf9rhjfc4.apps.googleusercontent.com",
+ "client_type": 2,
+ "ios_info": {
+ "bundle_id": "dev.explained.comm"
+ }
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/android/app/src/staging/google-services.json b/android/app/src/staging/google-services.json
new file mode 100644
index 0000000..2625a9d
--- /dev/null
+++ b/android/app/src/staging/google-services.json
@@ -0,0 +1,82 @@
+{
+ "project_info": {
+ "project_number": "904342392027",
+ "project_id": "fe-community-dev",
+ "storage_bucket": "fe-community-dev.appspot.com"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:904342392027:android:6e23ad729fa926912ad0fe",
+ "android_client_info": {
+ "package_name": "dev.flutterexplained.community_app"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "904342392027-v6bpbj6kq2igl1nh1atihvtnrg4be8gv.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyAvJzjCY2WLdII87qwpQQvUqjw0RcRisGM"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "904342392027-v6bpbj6kq2igl1nh1atihvtnrg4be8gv.apps.googleusercontent.com",
+ "client_type": 3
+ },
+ {
+ "client_id": "904342392027-q5sb99te7uc07m0td6lg8f9kfo4cbohg.apps.googleusercontent.com",
+ "client_type": 2,
+ "ios_info": {
+ "bundle_id": "dev.flutterexplained.community-app.dev"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:904342392027:android:b2991e3e0348c5482ad0fe",
+ "android_client_info": {
+ "package_name": "dev.flutterexplained.community_app.dev"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "904342392027-v6bpbj6kq2igl1nh1atihvtnrg4be8gv.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyAvJzjCY2WLdII87qwpQQvUqjw0RcRisGM"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "904342392027-v6bpbj6kq2igl1nh1atihvtnrg4be8gv.apps.googleusercontent.com",
+ "client_type": 3
+ },
+ {
+ "client_id": "904342392027-q5sb99te7uc07m0td6lg8f9kfo4cbohg.apps.googleusercontent.com",
+ "client_type": 2,
+ "ios_info": {
+ "bundle_id": "dev.flutterexplained.community-app.dev"
+ }
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 7cc359c..2e29a74 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -9,8 +9,8 @@
/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
- 665FD963B2C1BA38A86A2B4C /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 5039623F39C4A1B36DCEE32F /* GoogleService-Info.plist */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
+ 95DB0FF39635C17B00F27383 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29428C0B2BDB65CE15819310 /* Pods_Runner.framework */; };
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 */; };
@@ -32,11 +32,19 @@
/* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
+ 29428C0B2BDB65CE15819310 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 318FDF498C5671C62BA8B9CF /* Pods-Runner.debug-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-staging.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-staging.xcconfig"; sourceTree = ""; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
- 5039623F39C4A1B36DCEE32F /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; };
+ 4EFBC7C5118A7352BB8851E7 /* 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 = ""; };
+ 56DCD8C5B245B7121091B97B /* Pods-Runner.debug-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-development.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-development.xcconfig"; sourceTree = ""; };
+ 6AA5DEE2256C5CDD24D9BE0D /* 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 = ""; };
+ 6AC27DF1C2480CCFF10EB6CB /* Pods-Runner.debug-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-production.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-production.xcconfig"; sourceTree = ""; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
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 = ""; };
+ 90B6AF9729BD13570070FEA3 /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; };
+ 90B6AF9929BD13570070FEA3 /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; };
+ 90B6AF9A29BD15860070FEA3 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -44,6 +52,10 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 9C86B6792FABB14EB386D550 /* 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 = ""; };
+ D557FDAA443A362AE1A055A8 /* Pods-Runner.release-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-production.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-production.xcconfig"; sourceTree = ""; };
+ DB840CA14F009290459AA7CA /* Pods-Runner.profile-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-production.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-production.xcconfig"; sourceTree = ""; };
+ DBA2A0491263FE683C45DB1A /* Pods-Runner.release-staging.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-staging.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-staging.xcconfig"; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -51,12 +63,71 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 95DB0FF39635C17B00F27383 /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
+ 203238CA2C326A2891CE9B73 /* Pods */ = {
+ isa = PBXGroup;
+ children = (
+ 6AC27DF1C2480CCFF10EB6CB /* Pods-Runner.debug-production.xcconfig */,
+ 56DCD8C5B245B7121091B97B /* Pods-Runner.debug-development.xcconfig */,
+ 318FDF498C5671C62BA8B9CF /* Pods-Runner.debug-staging.xcconfig */,
+ D557FDAA443A362AE1A055A8 /* Pods-Runner.release-production.xcconfig */,
+ 4EFBC7C5118A7352BB8851E7 /* Pods-Runner.release-development.xcconfig */,
+ DBA2A0491263FE683C45DB1A /* Pods-Runner.release-staging.xcconfig */,
+ DB840CA14F009290459AA7CA /* Pods-Runner.profile-production.xcconfig */,
+ 9C86B6792FABB14EB386D550 /* Pods-Runner.profile-development.xcconfig */,
+ 6AA5DEE2256C5CDD24D9BE0D /* Pods-Runner.profile-staging.xcconfig */,
+ );
+ path = Pods;
+ sourceTree = "";
+ };
+ 90B6AF9429BD13570070FEA3 /* supporting_files */ = {
+ isa = PBXGroup;
+ children = (
+ 90B6AF9529BD13570070FEA3 /* Firebase */,
+ );
+ name = supporting_files;
+ path = Runner/supporting_files;
+ sourceTree = "";
+ };
+ 90B6AF9529BD13570070FEA3 /* Firebase */ = {
+ isa = PBXGroup;
+ children = (
+ 90B6AF9629BD13570070FEA3 /* Release */,
+ 90B6AF9829BD13570070FEA3 /* Debug */,
+ );
+ path = Firebase;
+ sourceTree = "";
+ };
+ 90B6AF9629BD13570070FEA3 /* Release */ = {
+ isa = PBXGroup;
+ children = (
+ 90B6AF9729BD13570070FEA3 /* GoogleService-Info.plist */,
+ );
+ path = Release;
+ sourceTree = "";
+ };
+ 90B6AF9829BD13570070FEA3 /* Debug */ = {
+ isa = PBXGroup;
+ children = (
+ 90B6AF9929BD13570070FEA3 /* GoogleService-Info.plist */,
+ );
+ path = Debug;
+ sourceTree = "";
+ };
+ 952D295F68E5087AFA80B08E /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 29428C0B2BDB65CE15819310 /* Pods_Runner.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
@@ -71,10 +142,12 @@
97C146E51CF9000F007C117D = {
isa = PBXGroup;
children = (
+ 90B6AF9429BD13570070FEA3 /* supporting_files */,
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
- 5039623F39C4A1B36DCEE32F /* GoogleService-Info.plist */,
+ 203238CA2C326A2891CE9B73 /* Pods */,
+ 952D295F68E5087AFA80B08E /* Frameworks */,
);
sourceTree = "";
};
@@ -89,6 +162,7 @@
97C146F01CF9000F007C117D /* Runner */ = {
isa = PBXGroup;
children = (
+ 90B6AF9A29BD15860070FEA3 /* Runner.entitlements */,
97C146FA1CF9000F007C117D /* Main.storyboard */,
97C146FD1CF9000F007C117D /* Assets.xcassets */,
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
@@ -108,12 +182,15 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
+ D4507226AAA10E79A75E33DF /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
+ 0619EB3DBF4E60D2DA228B46 /* [CP] Embed Pods Frameworks */,
+ 900DEADA29BD0E3D00987BB4 /* Copy Firebase Files */,
);
buildRules = (
);
@@ -166,13 +243,29 @@
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
- 665FD963B2C1BA38A86A2B4C /* GoogleService-Info.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
+ 0619EB3DBF4E60D2DA228B46 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
@@ -188,6 +281,24 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
+ 900DEADA29BD0E3D00987BB4 /* Copy Firebase Files */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "Copy Firebase Files";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "INFO_PLIST=GoogleService-Info.plist\n\necho ${TARGET_NAME}\necho ${PROJECT_DIR}\n\nDEBUG_INFO_PLIST=${PROJECT_DIR}/${TARGET_NAME}/supporting_files/Firebase/Debug/${INFO_PLIST}\nRELEASE_INFO_PLIST=${PROJECT_DIR}/${TARGET_NAME}/supporting_files/Firebase/Release/${INFO_PLIST}\n\necho \"Checking ${INFO_PLIST} in ${DEBUG_INFO_PLIST}\"\nif [ ! -f $DEBUG_INFO_PLIST ] ; then\n echo \"Debug GoogleService-Info.plist not found.\"\n exit 1\nfi\n\necho \"Checking ${INFO_PLIST} in ${RELEASE_INFO_PLIST}\"\nif [ ! -f $RELEASE_INFO_PLIST ] ; then\n echo \"Release GoogleService-Info.plist not found.\"\n exit 1\nfi\n\nPLIST_DESTINATION=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app\necho \"Copying ${INFO_PLIST} to final destination: ${PLIST_DESTINATION}\"\n\nif [ \"${CONFIGURATION}\" == \"Release\" ] ; then\n echo \"Copied ${RELEASE_INFO_PLIST}.\"\n cp \"${RELEASE_INFO_PLIST}\" \"${PLIST_DESTINATION}\"\nelse\n echo \"Copied ${DEBUG_INFO_PLIST}.\"\n cp \"${DEBUG_INFO_PLIST}\" \"${PLIST_DESTINATION}\"\nfi\n";
+ };
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
@@ -203,6 +314,28 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n";
};
+ D4507226AAA10E79A75E33DF /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -294,17 +427,22 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = 5DTG348F49;
+ DEVELOPMENT_TEAM = "";
ENABLE_BITCODE = NO;
FLAVOR_APP_NAME = "Community App";
INFOPLIST_FILE = Runner/Info.plist;
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "dev.flutterexplained.community-app";
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
@@ -426,17 +564,22 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = 5DTG348F49;
+ DEVELOPMENT_TEAM = "";
ENABLE_BITCODE = NO;
FLAVOR_APP_NAME = "Community App";
INFOPLIST_FILE = Runner/Info.plist;
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "dev.flutterexplained.community-app";
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
@@ -450,17 +593,22 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = 5DTG348F49;
+ DEVELOPMENT_TEAM = "";
ENABLE_BITCODE = NO;
FLAVOR_APP_NAME = "Community App";
INFOPLIST_FILE = Runner/Info.plist;
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "dev.flutterexplained.community-app";
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
@@ -529,17 +677,22 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-dev";
CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = 5DTG348F49;
+ DEVELOPMENT_TEAM = "";
ENABLE_BITCODE = NO;
FLAVOR_APP_NAME = "[DEV] Community App";
INFOPLIST_FILE = Runner/Info.plist;
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "dev.flutterexplained.community-app.dev";
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
@@ -606,17 +759,22 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-dev";
CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = 5DTG348F49;
+ DEVELOPMENT_TEAM = "";
ENABLE_BITCODE = NO;
FLAVOR_APP_NAME = "[DEV] Community App";
INFOPLIST_FILE = Runner/Info.plist;
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "dev.flutterexplained.community-app.dev";
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
@@ -680,17 +838,22 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-dev";
CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = 5DTG348F49;
+ DEVELOPMENT_TEAM = "";
ENABLE_BITCODE = NO;
FLAVOR_APP_NAME = "[DEV] Community App";
INFOPLIST_FILE = Runner/Info.plist;
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "dev.flutterexplained.community-app.dev";
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
@@ -759,17 +922,22 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-stg";
CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = 5DTG348F49;
+ DEVELOPMENT_TEAM = "";
ENABLE_BITCODE = NO;
FLAVOR_APP_NAME = "[STG] Community App";
INFOPLIST_FILE = Runner/Info.plist;
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "dev.flutterexplained.community-app.stg";
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
@@ -836,17 +1004,22 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-stg";
CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = 5DTG348F49;
+ DEVELOPMENT_TEAM = "";
ENABLE_BITCODE = NO;
FLAVOR_APP_NAME = "[STG] Community App";
INFOPLIST_FILE = Runner/Info.plist;
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "dev.flutterexplained.community-app.stg";
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
@@ -910,17 +1083,22 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "AppIcon-stg";
CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
- DEVELOPMENT_TEAM = 5DTG348F49;
+ DEVELOPMENT_TEAM = "";
ENABLE_BITCODE = NO;
FLAVOR_APP_NAME = "[STG] Community App";
INFOPLIST_FILE = Runner/Info.plist;
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "dev.flutterexplained.community-app.stg";
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata
index 1d526a1..21a3cc1 100644
--- a/ios/Runner.xcworkspace/contents.xcworkspacedata
+++ b/ios/Runner.xcworkspace/contents.xcworkspacedata
@@ -4,4 +4,7 @@
+
+
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index e50cc4e..c7d38ac 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -27,6 +27,20 @@
$(FLUTTER_BUILD_NAME)
CFBundleSignature
????
+ CFBundleURLTypes
+
+
+ CFBundleTypeRole
+ Editor
+ CFBundleURLName
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleURLSchemes
+
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+
+
+
+
CFBundleVersion
$(FLUTTER_BUILD_NUMBER)
LSRequiresIPhoneOS
@@ -50,6 +64,12 @@
UIInterfaceOrientationLandscapeLeft
UIInterfaceOrientationLandscapeRight
+ LSApplicationCategoryType
+
+ FirebaseDynamicLinksCustomDomains
+
+ https://flutterexplained.page.link/
+
UIViewControllerBasedStatusBarAppearance
diff --git a/ios/Runner/Runner.entitlements b/ios/Runner/Runner.entitlements
new file mode 100644
index 0000000..7575538
--- /dev/null
+++ b/ios/Runner/Runner.entitlements
@@ -0,0 +1,10 @@
+
+
+
+
+ com.apple.developer.associated-domains
+
+ applinks:flutterexplained.page.link
+
+
+
diff --git a/ios/Runner/supporting_files/Firebase/Debug/GoogleService-Info.plist b/ios/Runner/supporting_files/Firebase/Debug/GoogleService-Info.plist
new file mode 100644
index 0000000..6e8f010
--- /dev/null
+++ b/ios/Runner/supporting_files/Firebase/Debug/GoogleService-Info.plist
@@ -0,0 +1,34 @@
+
+
+
+
+ CLIENT_ID
+ 904342392027-q5sb99te7uc07m0td6lg8f9kfo4cbohg.apps.googleusercontent.com
+ REVERSED_CLIENT_ID
+ com.googleusercontent.apps.904342392027-q5sb99te7uc07m0td6lg8f9kfo4cbohg
+ API_KEY
+ AIzaSyAcA5u44DhgvVnILATaOM_7TAp-vXatL2U
+ GCM_SENDER_ID
+ 904342392027
+ PLIST_VERSION
+ 1
+ BUNDLE_ID
+ dev.flutterexplained.community-app.dev
+ PROJECT_ID
+ fe-community-dev
+ STORAGE_BUCKET
+ fe-community-dev.appspot.com
+ IS_ADS_ENABLED
+
+ IS_ANALYTICS_ENABLED
+
+ IS_APPINVITE_ENABLED
+
+ IS_GCM_ENABLED
+
+ IS_SIGNIN_ENABLED
+
+ GOOGLE_APP_ID
+ 1:904342392027:ios:4a2e611a4843f6df2ad0fe
+
+
\ No newline at end of file
diff --git a/ios/Runner/GoogleService-Info.plist b/ios/Runner/supporting_files/Firebase/Release/GoogleService-Info.plist
similarity index 100%
rename from ios/Runner/GoogleService-Info.plist
rename to ios/Runner/supporting_files/Firebase/Release/GoogleService-Info.plist
diff --git a/ios/firebase_app_id_file.json b/ios/firebase_app_id_file.json
deleted file mode 100644
index 1655b6e..0000000
--- a/ios/firebase_app_id_file.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "file_generated_by": "FlutterFire CLI",
- "purpose": "FirebaseAppID & ProjectID for this Firebase app in this directory",
- "GOOGLE_APP_ID": "1:904342392027:ios:4a2e611a4843f6df2ad0fe",
- "FIREBASE_PROJECT_ID": "fe-community-dev",
- "GCM_SENDER_ID": "904342392027"
-}
\ No newline at end of file
diff --git a/lib/app/routes/router_config.dart b/lib/app/routes/router_config.dart
new file mode 100644
index 0000000..6cba7f2
--- /dev/null
+++ b/lib/app/routes/router_config.dart
@@ -0,0 +1,78 @@
+import 'package:community_app/counter/view/counter_page.dart';
+import 'package:firebase_auth/firebase_auth.dart'
+ show ActionCodeSettings, FirebaseAuth;
+import 'package:firebase_ui_auth/firebase_ui_auth.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:go_router/go_router.dart';
+
+final providers = [
+ EmailAuthProvider(),
+ EmailLinkAuthProvider(
+ actionCodeSettings: ActionCodeSettings(
+ url: 'http://localhost',
+ handleCodeInApp: true,
+ androidMinimumVersion: '1',
+ androidPackageName: 'dev.flutterexplained.community_app.dev',
+ iOSBundleId: 'dev.flutterexplained.community_app.dev',
+ ),
+ ),
+];
+
+final GoRouter routerConfig = GoRouter(
+ routes: [
+ GoRoute(
+ path: '/',
+ builder: (BuildContext context, GoRouterState state) {
+ return FirebaseAuth.instance.currentUser != null
+ ? const CounterPage()
+ : SignInScreen(
+ providers: providers,
+ actions: [
+ EmailLinkSignInAction((context) {
+ context.go('/email-link-sign-in');
+ })
+ ],
+ );
+ },
+ ),
+ GoRoute(
+ path: '/sign-in',
+ builder: (BuildContext context, GoRouterState state) {
+ return SignInScreen(
+ providers: providers,
+ actions: [
+ EmailLinkSignInAction((context) {
+ context.go('/email-link-sign-in');
+ }),
+ AuthStateChangeAction((context, state) {
+ context.go('/profile');
+ })
+ ],
+ );
+ },
+ ),
+ GoRoute(
+ path: '/email-link-sign-in',
+ builder: (context, state) => EmailLinkSignInScreen(
+ actions: [
+ AuthStateChangeAction((context, state) {
+ context.go('/profile');
+ }),
+ ],
+ ),
+ ),
+ GoRoute(
+ path: '/profile',
+ builder: (BuildContext context, GoRouterState state) {
+ return ProfileScreen(
+ providers: providers,
+ actions: [
+ SignedOutAction((context) {
+ context.go('/sign-in');
+ })
+ ],
+ );
+ },
+ )
+ ],
+);
diff --git a/lib/app/routes/routes.dart b/lib/app/routes/routes.dart
new file mode 100644
index 0000000..047d9ba
--- /dev/null
+++ b/lib/app/routes/routes.dart
@@ -0,0 +1 @@
+export './router_config.dart';
diff --git a/lib/app/view/app.dart b/lib/app/view/app.dart
index e956847..eb9a546 100644
--- a/lib/app/view/app.dart
+++ b/lib/app/view/app.dart
@@ -1,4 +1,4 @@
-import 'package:community_app/counter/counter.dart';
+import 'package:community_app/app/routes/router_config.dart';
import 'package:community_app/l10n/l10n.dart';
import 'package:flutter/material.dart';
@@ -7,7 +7,7 @@ class App extends StatelessWidget {
@override
Widget build(BuildContext context) {
- return MaterialApp(
+ return MaterialApp.router(
theme: ThemeData(
appBarTheme: const AppBarTheme(color: Color(0xFF13B9FF)),
colorScheme: ColorScheme.fromSwatch(
@@ -16,7 +16,7 @@ class App extends StatelessWidget {
),
localizationsDelegates: AppLocalizations.localizationsDelegates,
supportedLocales: AppLocalizations.supportedLocales,
- home: const CounterPage(),
+ routerConfig: routerConfig,
);
}
}
diff --git a/lib/bootstrap.dart b/lib/bootstrap.dart
index cee83ae..f6d4b74 100644
--- a/lib/bootstrap.dart
+++ b/lib/bootstrap.dart
@@ -3,6 +3,7 @@ import 'dart:developer';
import 'package:bloc/bloc.dart';
import 'package:community_app/firebase_options.dart';
+import 'package:community_app/firebase_options_dev.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/widgets.dart';
@@ -37,8 +38,10 @@ Future bootstrap(
Bloc.observer = const AppBlocObserver();
await Firebase.initializeApp(
- name: '$environment',
- options: DefaultFirebaseOptions.currentPlatform,
+ name: environment.name,
+ options: environment == Environment.dev
+ ? DevDefaultFirebaseOptions.currentPlatform
+ : DefaultFirebaseOptions.currentPlatform,
);
await runZonedGuarded(
diff --git a/lib/counter/view/counter_page.dart b/lib/counter/view/counter_page.dart
index f7f3cef..7e8d68f 100644
--- a/lib/counter/view/counter_page.dart
+++ b/lib/counter/view/counter_page.dart
@@ -2,6 +2,7 @@ import 'package:community_app/counter/counter.dart';
import 'package:community_app/l10n/l10n.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
+import 'package:go_router/go_router.dart';
class CounterPage extends StatelessWidget {
const CounterPage({super.key});
@@ -29,7 +30,7 @@ class CounterView extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.end,
children: [
FloatingActionButton(
- onPressed: () => context.read().increment(),
+ onPressed: () => context.go('/profile'),
child: const Icon(Icons.add),
),
const SizedBox(height: 8),
diff --git a/lib/firebase_options_dev.dart b/lib/firebase_options_dev.dart
index 1720f50..0325a1c 100644
--- a/lib/firebase_options_dev.dart
+++ b/lib/firebase_options_dev.dart
@@ -14,7 +14,7 @@ import 'package:flutter/foundation.dart'
/// options: DefaultFirebaseOptions.currentPlatform,
/// );
/// ```
-class DefaultFirebaseOptions {
+class DevDefaultFirebaseOptions {
static FirebaseOptions get currentPlatform {
if (kIsWeb) {
throw UnsupportedError(
diff --git a/pubspec.lock b/pubspec.lock
index bc09163..d63b79e 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -5,210 +5,240 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
- url: "https://pub.dartlang.org"
+ sha256: "569ddca58d535e601dd1584afa117710abc999d036c0cd2c51777fb257df78e8"
+ url: "https://pub.dev"
source: hosted
version: "53.0.0"
_flutterfire_internals:
dependency: transitive
description:
name: _flutterfire_internals
- url: "https://pub.dartlang.org"
+ sha256: "953f097772b5fd095e0ee6eeeab34e3a42de91d5f43fa86b5de8485a57494f96"
+ url: "https://pub.dev"
source: hosted
version: "1.0.15"
analyzer:
dependency: transitive
description:
name: analyzer
- url: "https://pub.dartlang.org"
+ sha256: "10927c4b7c7c88b1adbca278c3d5531db92e2f4b4abf04e2919a800af965f3f5"
+ url: "https://pub.dev"
source: hosted
version: "5.5.0"
args:
dependency: transitive
description:
name: args
- url: "https://pub.dartlang.org"
+ sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440"
+ url: "https://pub.dev"
source: hosted
version: "2.4.0"
async:
dependency: transitive
description:
name: async
- url: "https://pub.dartlang.org"
+ sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
+ url: "https://pub.dev"
source: hosted
version: "2.10.0"
bloc:
dependency: "direct main"
description:
name: bloc
- url: "https://pub.dartlang.org"
+ sha256: "658a5ae59edcf1e58aac98b000a71c762ad8f46f1394c34a52050cafb3e11a80"
+ url: "https://pub.dev"
source: hosted
version: "8.1.1"
bloc_test:
dependency: "direct dev"
description:
name: bloc_test
- url: "https://pub.dartlang.org"
+ sha256: ffbb60c17ee3d8e3784cb78071088e353199057233665541e8ac6cd438dca8ad
+ url: "https://pub.dev"
source: hosted
version: "9.1.1"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
- url: "https://pub.dartlang.org"
+ sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
+ url: "https://pub.dev"
source: hosted
version: "2.1.1"
characters:
dependency: transitive
description:
name: characters
- url: "https://pub.dartlang.org"
+ sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
+ url: "https://pub.dev"
source: hosted
version: "1.2.1"
clock:
dependency: transitive
description:
name: clock
- url: "https://pub.dartlang.org"
+ sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
+ url: "https://pub.dev"
source: hosted
version: "1.1.1"
collection:
dependency: transitive
description:
name: collection
- url: "https://pub.dartlang.org"
+ sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
+ url: "https://pub.dev"
source: hosted
version: "1.17.0"
convert:
dependency: transitive
description:
name: convert
- url: "https://pub.dartlang.org"
+ sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
+ url: "https://pub.dev"
source: hosted
version: "3.1.1"
coverage:
dependency: transitive
description:
name: coverage
- url: "https://pub.dartlang.org"
+ sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097"
+ url: "https://pub.dev"
source: hosted
version: "1.6.3"
crypto:
dependency: transitive
description:
name: crypto
- url: "https://pub.dartlang.org"
+ sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
+ url: "https://pub.dev"
source: hosted
version: "3.0.2"
desktop_webview_auth:
dependency: transitive
description:
name: desktop_webview_auth
- url: "https://pub.dartlang.org"
+ sha256: "9de17601e1521b7cc2de1c5538e92f64833da668cba101bf11b2f61ce652becc"
+ url: "https://pub.dev"
source: hosted
version: "0.0.11"
diff_match_patch:
dependency: transitive
description:
name: diff_match_patch
- url: "https://pub.dartlang.org"
+ sha256: "2efc9e6e8f449d0abe15be240e2c2a3bcd977c8d126cfd70598aee60af35c0a4"
+ url: "https://pub.dev"
source: hosted
version: "0.4.1"
email_validator:
dependency: transitive
description:
name: email_validator
- url: "https://pub.dartlang.org"
+ sha256: e9a90f27ab2b915a27d7f9c2a7ddda5dd752d6942616ee83529b686fc086221b
+ url: "https://pub.dev"
source: hosted
version: "2.1.17"
fake_async:
dependency: transitive
description:
name: fake_async
- url: "https://pub.dartlang.org"
+ sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
+ url: "https://pub.dev"
source: hosted
version: "1.3.1"
file:
dependency: transitive
description:
name: file
- url: "https://pub.dartlang.org"
+ sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
+ url: "https://pub.dev"
source: hosted
version: "6.1.4"
firebase_auth:
dependency: "direct main"
description:
name: firebase_auth
- url: "https://pub.dartlang.org"
+ sha256: "4238545c2dd88774195bbb588182eff7f383ffe8b83e47302f1cb50a79f3dc01"
+ url: "https://pub.dev"
source: hosted
version: "4.2.8"
firebase_auth_platform_interface:
dependency: transitive
description:
name: firebase_auth_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: "32d31705603b335b140a73bf8c933ee57ecec9f31f2d82b2371bb5ce714a6535"
+ url: "https://pub.dev"
source: hosted
version: "6.11.10"
firebase_auth_web:
dependency: transitive
description:
name: firebase_auth_web
- url: "https://pub.dartlang.org"
+ sha256: d20d5c2d14fd0ec422d6a58caada47354a4066f981f0130abda15bce37e53fa4
+ url: "https://pub.dev"
source: hosted
version: "5.2.7"
firebase_core:
dependency: "direct main"
description:
name: firebase_core
- url: "https://pub.dartlang.org"
+ sha256: "46b80acfb472d8abc500c2cb6ce65c4b5237d825e4c23bfc3efc70df9eec1a6e"
+ url: "https://pub.dev"
source: hosted
version: "2.6.1"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: "5615b30c36f55b2777d0533771deda7e5730e769e5d3cb7fda79e9bed86cfa55"
+ url: "https://pub.dev"
source: hosted
version: "4.5.3"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
- url: "https://pub.dartlang.org"
+ sha256: "291fbcace608aca6c860652e1358ef89752be8cc3ef227f8bbcd1e62775b833a"
+ url: "https://pub.dev"
source: hosted
version: "2.2.1"
firebase_dynamic_links:
dependency: "direct main"
description:
name: firebase_dynamic_links
- url: "https://pub.dartlang.org"
+ sha256: "912674c07a9fb36687af43773dee282023d0fb4424634a9f186d43cb1e3bd631"
+ url: "https://pub.dev"
source: hosted
version: "5.0.14"
firebase_dynamic_links_platform_interface:
dependency: transitive
description:
name: firebase_dynamic_links_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: f25092bfc6c6f97e72b2303db4172a68360b87a7afebe9c891e36aa11a35bd32
+ url: "https://pub.dev"
source: hosted
version: "0.2.3+29"
firebase_ui_auth:
dependency: "direct main"
description:
name: firebase_ui_auth
- url: "https://pub.dartlang.org"
+ sha256: dab49d95b2a498a4de6413882d5f9d4896aa222acef673d2588b63332e970924
+ url: "https://pub.dev"
source: hosted
version: "1.1.13"
firebase_ui_localizations:
dependency: transitive
description:
name: firebase_ui_localizations
- url: "https://pub.dartlang.org"
+ sha256: "8ab06ef14bbad6c2f8af63aa2995016996c205fd05db7912df18838a51d023e4"
+ url: "https://pub.dev"
source: hosted
version: "1.2.0"
firebase_ui_oauth:
dependency: transitive
description:
name: firebase_ui_oauth
- url: "https://pub.dartlang.org"
+ sha256: "87e8440b0da2197f72abf4cacac049a837b6fbb9b50d0beca201413b1ff6c2f3"
+ url: "https://pub.dev"
source: hosted
version: "1.1.13"
flutter:
@@ -220,7 +250,8 @@ packages:
dependency: "direct main"
description:
name: flutter_bloc
- url: "https://pub.dartlang.org"
+ sha256: "434951eea948dbe87f737b674281465f610b8259c16c097b8163ce138749a775"
+ url: "https://pub.dev"
source: hosted
version: "8.1.2"
flutter_localizations:
@@ -232,7 +263,8 @@ packages:
dependency: transitive
description:
name: flutter_svg
- url: "https://pub.dartlang.org"
+ sha256: "6ff9fa12892ae074092de2fa6a9938fb21dbabfdaa2ff57dc697ff912fc8d4b2"
+ url: "https://pub.dev"
source: hosted
version: "1.1.6"
flutter_test:
@@ -249,210 +281,240 @@ packages:
dependency: transitive
description:
name: frontend_server_client
- url: "https://pub.dartlang.org"
+ sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612"
+ url: "https://pub.dev"
source: hosted
version: "3.2.0"
glob:
dependency: transitive
description:
name: glob
- url: "https://pub.dartlang.org"
+ sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c"
+ url: "https://pub.dev"
source: hosted
version: "2.1.1"
go_router:
dependency: "direct main"
description:
name: go_router
- url: "https://pub.dartlang.org"
+ sha256: "7a79232827c851f6b9f08c3c7254a1eaff7bc6aa147e103e51f951c5c10b0ccc"
+ url: "https://pub.dev"
source: hosted
version: "6.0.9"
http:
dependency: transitive
description:
name: http
- url: "https://pub.dartlang.org"
+ sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482"
+ url: "https://pub.dev"
source: hosted
version: "0.13.5"
http_multi_server:
dependency: transitive
description:
name: http_multi_server
- url: "https://pub.dartlang.org"
+ sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
+ url: "https://pub.dev"
source: hosted
version: "3.2.1"
http_parser:
dependency: transitive
description:
name: http_parser
- url: "https://pub.dartlang.org"
+ sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
+ url: "https://pub.dev"
source: hosted
version: "4.0.2"
intl:
dependency: "direct main"
description:
name: intl
- url: "https://pub.dartlang.org"
+ sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91"
+ url: "https://pub.dev"
source: hosted
version: "0.17.0"
io:
dependency: transitive
description:
name: io
- url: "https://pub.dartlang.org"
+ sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e"
+ url: "https://pub.dev"
source: hosted
version: "1.0.4"
js:
dependency: transitive
description:
name: js
- url: "https://pub.dartlang.org"
+ sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
+ url: "https://pub.dev"
source: hosted
version: "0.6.5"
logging:
dependency: transitive
description:
name: logging
- url: "https://pub.dartlang.org"
+ sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d"
+ url: "https://pub.dev"
source: hosted
version: "1.1.1"
matcher:
dependency: transitive
description:
name: matcher
- url: "https://pub.dartlang.org"
+ sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
+ url: "https://pub.dev"
source: hosted
version: "0.12.13"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
- url: "https://pub.dartlang.org"
+ sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
+ url: "https://pub.dev"
source: hosted
version: "0.2.0"
meta:
dependency: transitive
description:
name: meta
- url: "https://pub.dartlang.org"
+ sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
+ url: "https://pub.dev"
source: hosted
version: "1.8.0"
mime:
dependency: transitive
description:
name: mime
- url: "https://pub.dartlang.org"
+ sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
+ url: "https://pub.dev"
source: hosted
version: "1.0.4"
mocktail:
dependency: "direct dev"
description:
name: mocktail
- url: "https://pub.dartlang.org"
+ sha256: "80a996cd9a69284b3dc521ce185ffe9150cde69767c2d3a0720147d93c0cef53"
+ url: "https://pub.dev"
source: hosted
version: "0.3.0"
nested:
dependency: transitive
description:
name: nested
- url: "https://pub.dartlang.org"
+ sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
+ url: "https://pub.dev"
source: hosted
version: "1.0.0"
node_preamble:
dependency: transitive
description:
name: node_preamble
- url: "https://pub.dartlang.org"
+ sha256: "8ebdbaa3b96d5285d068f80772390d27c21e1fa10fb2df6627b1b9415043608d"
+ url: "https://pub.dev"
source: hosted
version: "2.0.1"
package_config:
dependency: transitive
description:
name: package_config
- url: "https://pub.dartlang.org"
+ sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
+ url: "https://pub.dev"
source: hosted
version: "2.1.0"
path:
dependency: transitive
description:
name: path
- url: "https://pub.dartlang.org"
+ sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
+ url: "https://pub.dev"
source: hosted
version: "1.8.2"
path_drawing:
dependency: transitive
description:
name: path_drawing
- url: "https://pub.dartlang.org"
+ sha256: bbb1934c0cbb03091af082a6389ca2080345291ef07a5fa6d6e078ba8682f977
+ url: "https://pub.dev"
source: hosted
version: "1.0.1"
path_parsing:
dependency: transitive
description:
name: path_parsing
- url: "https://pub.dartlang.org"
+ sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf
+ url: "https://pub.dev"
source: hosted
version: "1.0.1"
petitparser:
dependency: transitive
description:
name: petitparser
- url: "https://pub.dartlang.org"
+ sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4"
+ url: "https://pub.dev"
source: hosted
version: "5.1.0"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
- url: "https://pub.dartlang.org"
+ sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a
+ url: "https://pub.dev"
source: hosted
version: "2.1.3"
pool:
dependency: transitive
description:
name: pool
- url: "https://pub.dartlang.org"
+ sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
+ url: "https://pub.dev"
source: hosted
version: "1.5.1"
provider:
dependency: transitive
description:
name: provider
- url: "https://pub.dartlang.org"
+ sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f
+ url: "https://pub.dev"
source: hosted
version: "6.0.5"
pub_semver:
dependency: transitive
description:
name: pub_semver
- url: "https://pub.dartlang.org"
+ sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17"
+ url: "https://pub.dev"
source: hosted
version: "2.1.3"
shelf:
dependency: transitive
description:
name: shelf
- url: "https://pub.dartlang.org"
+ sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c
+ url: "https://pub.dev"
source: hosted
version: "1.4.0"
shelf_packages_handler:
dependency: transitive
description:
name: shelf_packages_handler
- url: "https://pub.dartlang.org"
+ sha256: aef74dc9195746a384843102142ab65b6a4735bb3beea791e63527b88cc83306
+ url: "https://pub.dev"
source: hosted
version: "3.0.1"
shelf_static:
dependency: transitive
description:
name: shelf_static
- url: "https://pub.dartlang.org"
+ sha256: e792b76b96a36d4a41b819da593aff4bdd413576b3ba6150df5d8d9996d2e74c
+ url: "https://pub.dev"
source: hosted
version: "1.1.1"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
- url: "https://pub.dartlang.org"
+ sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8
+ url: "https://pub.dev"
source: hosted
version: "1.0.3"
sky_engine:
@@ -464,133 +526,152 @@ packages:
dependency: transitive
description:
name: source_map_stack_trace
- url: "https://pub.dartlang.org"
+ sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae"
+ url: "https://pub.dev"
source: hosted
version: "2.1.1"
source_maps:
dependency: transitive
description:
name: source_maps
- url: "https://pub.dartlang.org"
+ sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703"
+ url: "https://pub.dev"
source: hosted
version: "0.10.12"
source_span:
dependency: transitive
description:
name: source_span
- url: "https://pub.dartlang.org"
+ sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
+ url: "https://pub.dev"
source: hosted
version: "1.9.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
- url: "https://pub.dartlang.org"
+ sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
+ url: "https://pub.dev"
source: hosted
version: "1.11.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
- url: "https://pub.dartlang.org"
+ sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
+ url: "https://pub.dev"
source: hosted
version: "2.1.1"
string_scanner:
dependency: transitive
description:
name: string_scanner
- url: "https://pub.dartlang.org"
+ sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
+ url: "https://pub.dev"
source: hosted
version: "1.2.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
- url: "https://pub.dartlang.org"
+ sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
+ url: "https://pub.dev"
source: hosted
version: "1.2.1"
test:
dependency: transitive
description:
name: test
- url: "https://pub.dartlang.org"
+ sha256: a5fcd2d25eeadbb6589e80198a47d6a464ba3e2049da473943b8af9797900c2d
+ url: "https://pub.dev"
source: hosted
version: "1.22.0"
test_api:
dependency: transitive
description:
name: test_api
- url: "https://pub.dartlang.org"
+ sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
+ url: "https://pub.dev"
source: hosted
version: "0.4.16"
test_core:
dependency: transitive
description:
name: test_core
- url: "https://pub.dartlang.org"
+ sha256: "0ef9755ec6d746951ba0aabe62f874b707690b5ede0fecc818b138fcc9b14888"
+ url: "https://pub.dev"
source: hosted
version: "0.4.20"
typed_data:
dependency: transitive
description:
name: typed_data
- url: "https://pub.dartlang.org"
+ sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
+ url: "https://pub.dev"
source: hosted
version: "1.3.1"
vector_math:
dependency: transitive
description:
name: vector_math
- url: "https://pub.dartlang.org"
+ sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
+ url: "https://pub.dev"
source: hosted
version: "2.1.4"
very_good_analysis:
dependency: "direct dev"
description:
name: very_good_analysis
- url: "https://pub.dartlang.org"
+ sha256: ebc48c51db35beeeec8c414e32f7bd78e612bd7f5992ccb0d46e19edaeb40b08
+ url: "https://pub.dev"
source: hosted
version: "4.0.0+1"
vm_service:
dependency: transitive
description:
name: vm_service
- url: "https://pub.dartlang.org"
+ sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7
+ url: "https://pub.dev"
source: hosted
version: "9.4.0"
watcher:
dependency: transitive
description:
name: watcher
- url: "https://pub.dartlang.org"
+ sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0"
+ url: "https://pub.dev"
source: hosted
version: "1.0.2"
web_socket_channel:
dependency: transitive
description:
name: web_socket_channel
- url: "https://pub.dartlang.org"
+ sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b
+ url: "https://pub.dev"
source: hosted
version: "2.3.0"
webkit_inspection_protocol:
dependency: transitive
description:
name: webkit_inspection_protocol
- url: "https://pub.dartlang.org"
+ sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d"
+ url: "https://pub.dev"
source: hosted
version: "1.2.0"
xml:
dependency: transitive
description:
name: xml
- url: "https://pub.dartlang.org"
+ sha256: "979ee37d622dec6365e2efa4d906c37470995871fe9ae080d967e192d88286b5"
+ url: "https://pub.dev"
source: hosted
version: "6.2.2"
yaml:
dependency: transitive
description:
name: yaml
- url: "https://pub.dartlang.org"
+ sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370"
+ url: "https://pub.dev"
source: hosted
version: "3.1.1"
sdks:
diff --git a/pubspec.yaml b/pubspec.yaml
index 18baf5e..ce2ba83 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -31,3 +31,8 @@ dev_dependencies:
flutter:
uses-material-design: true
generate: true
+
+fonts:
+ - family: SocialIcons
+ fonts:
+ - asset: packages/firebase_ui_auth/fonts/SocialIcons.ttf