Skip to content

Commit 593cfcf

Browse files
committed
Feat: Authentication
1 parent de0ac10 commit 593cfcf

File tree

20 files changed

+591
-119
lines changed

20 files changed

+591
-119
lines changed

android/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ GeneratedPluginRegistrant.java
1111
key.properties
1212
**/*.keystore
1313
**/*.jks
14+
app/google-services.json

android/app/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ if (flutterVersionName == null) {
2222
}
2323

2424
apply plugin: 'com.android.application'
25+
// START: FlutterFire Configuration
26+
apply plugin: 'com.google.gms.google-services'
27+
// END: FlutterFire Configuration
2528
apply plugin: 'kotlin-android'
2629
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
2730

android/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ buildscript {
77

88
dependencies {
99
classpath 'com.android.tools.build:gradle:7.1.2'
10+
// START: FlutterFire Configuration
11+
classpath 'com.google.gms:google-services:4.3.10'
12+
// END: FlutterFire Configuration
1013
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
1114
}
1215
}

ios/.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,7 @@ Runner/GeneratedPluginRegistrant.*
3232
!default.mode2v3
3333
!default.pbxuser
3434
!default.perspectivev3
35+
36+
37+
firebase_app_id_file.json
38+
Runner/GoogleService-Info.plist

ios/Runner.xcodeproj/project.pbxproj

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33
archiveVersion = 1;
44
classes = {
55
};
6-
objectVersion = 50;
6+
objectVersion = 51;
77
objects = {
88

99
/* Begin PBXBuildFile section */
1010
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
1111
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
1212
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
13+
86BEC9ACE927857FF3CE10C4 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB4FB032B016FA0C1DA0274B /* Pods_Runner.framework */; };
1314
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
1415
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
1516
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
@@ -31,7 +32,10 @@
3132
/* Begin PBXFileReference section */
3233
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
3334
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
35+
28BE106AFEED73DAECE51AA9 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
36+
391F33034990756F44604915 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = "<group>"; };
3437
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
38+
4A48E7B88F4DF963C3A1DACC /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
3539
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
3640
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
3741
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
@@ -42,19 +46,32 @@
4246
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
4347
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
4448
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
49+
9CDD44DEA85FF1969B10CC0D /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
50+
DB4FB032B016FA0C1DA0274B /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
4551
/* End PBXFileReference section */
4652

4753
/* Begin PBXFrameworksBuildPhase section */
4854
97C146EB1CF9000F007C117D /* Frameworks */ = {
4955
isa = PBXFrameworksBuildPhase;
5056
buildActionMask = 2147483647;
5157
files = (
58+
86BEC9ACE927857FF3CE10C4 /* Pods_Runner.framework in Frameworks */,
5259
);
5360
runOnlyForDeploymentPostprocessing = 0;
5461
};
5562
/* End PBXFrameworksBuildPhase section */
5663

5764
/* Begin PBXGroup section */
65+
08BEA035E91682322D02F8F4 /* Pods */ = {
66+
isa = PBXGroup;
67+
children = (
68+
28BE106AFEED73DAECE51AA9 /* Pods-Runner.debug.xcconfig */,
69+
4A48E7B88F4DF963C3A1DACC /* Pods-Runner.release.xcconfig */,
70+
9CDD44DEA85FF1969B10CC0D /* Pods-Runner.profile.xcconfig */,
71+
);
72+
path = Pods;
73+
sourceTree = "<group>";
74+
};
5875
9740EEB11CF90186004384FC /* Flutter */ = {
5976
isa = PBXGroup;
6077
children = (
@@ -72,6 +89,9 @@
7289
9740EEB11CF90186004384FC /* Flutter */,
7390
97C146F01CF9000F007C117D /* Runner */,
7491
97C146EF1CF9000F007C117D /* Products */,
92+
08BEA035E91682322D02F8F4 /* Pods */,
93+
B977B910010DD3812A22909E /* Frameworks */,
94+
391F33034990756F44604915 /* GoogleService-Info.plist */,
7595
);
7696
sourceTree = "<group>";
7797
};
@@ -98,19 +118,29 @@
98118
path = Runner;
99119
sourceTree = "<group>";
100120
};
121+
B977B910010DD3812A22909E /* Frameworks */ = {
122+
isa = PBXGroup;
123+
children = (
124+
DB4FB032B016FA0C1DA0274B /* Pods_Runner.framework */,
125+
);
126+
name = Frameworks;
127+
sourceTree = "<group>";
128+
};
101129
/* End PBXGroup section */
102130

103131
/* Begin PBXNativeTarget section */
104132
97C146ED1CF9000F007C117D /* Runner */ = {
105133
isa = PBXNativeTarget;
106134
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
107135
buildPhases = (
136+
8E763A430B75DC536180D84A /* [CP] Check Pods Manifest.lock */,
108137
9740EEB61CF901F6004384FC /* Run Script */,
109138
97C146EA1CF9000F007C117D /* Sources */,
110139
97C146EB1CF9000F007C117D /* Frameworks */,
111140
97C146EC1CF9000F007C117D /* Resources */,
112141
9705A1C41CF9048500538489 /* Embed Frameworks */,
113142
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
143+
AAD0D25D760D8156DAB170FB /* [CP] Embed Pods Frameworks */,
114144
);
115145
buildRules = (
116146
);
@@ -183,6 +213,28 @@
183213
shellPath = /bin/sh;
184214
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
185215
};
216+
8E763A430B75DC536180D84A /* [CP] Check Pods Manifest.lock */ = {
217+
isa = PBXShellScriptBuildPhase;
218+
buildActionMask = 2147483647;
219+
files = (
220+
);
221+
inputFileListPaths = (
222+
);
223+
inputPaths = (
224+
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
225+
"${PODS_ROOT}/Manifest.lock",
226+
);
227+
name = "[CP] Check Pods Manifest.lock";
228+
outputFileListPaths = (
229+
);
230+
outputPaths = (
231+
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
232+
);
233+
runOnlyForDeploymentPostprocessing = 0;
234+
shellPath = /bin/sh;
235+
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";
236+
showEnvVarsInLog = 0;
237+
};
186238
9740EEB61CF901F6004384FC /* Run Script */ = {
187239
isa = PBXShellScriptBuildPhase;
188240
buildActionMask = 2147483647;
@@ -197,6 +249,23 @@
197249
shellPath = /bin/sh;
198250
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
199251
};
252+
AAD0D25D760D8156DAB170FB /* [CP] Embed Pods Frameworks */ = {
253+
isa = PBXShellScriptBuildPhase;
254+
buildActionMask = 2147483647;
255+
files = (
256+
);
257+
inputFileListPaths = (
258+
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
259+
);
260+
name = "[CP] Embed Pods Frameworks";
261+
outputFileListPaths = (
262+
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
263+
);
264+
runOnlyForDeploymentPostprocessing = 0;
265+
shellPath = /bin/sh;
266+
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
267+
showEnvVarsInLog = 0;
268+
};
200269
/* End PBXShellScriptBuildPhase section */
201270

202271
/* Begin PBXSourcesBuildPhase section */

ios/Runner.xcworkspace/contents.xcworkspacedata

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ios/Runner/Info.plist

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
33
<plist version="1.0">
44
<dict>
5+
<key>CADisableMinimumFrameDurationOnPhone</key>
6+
<true/>
57
<key>CFBundleDevelopmentRegion</key>
68
<string>$(DEVELOPMENT_LANGUAGE)</string>
79
<key>CFBundleDisplayName</key>
@@ -20,10 +22,23 @@
2022
<string>$(FLUTTER_BUILD_NAME)</string>
2123
<key>CFBundleSignature</key>
2224
<string>????</string>
25+
<key>CFBundleURLTypes</key>
26+
<array>
27+
<dict>
28+
<key>CFBundleTypeRole</key>
29+
<string>Editor</string>
30+
<key>CFBundleURLSchemes</key>
31+
<array>
32+
<string>com.googleusercontent.apps.226640418465-pormj02s5dnouf8e7o6pq2ftmovipqtk</string>
33+
</array>
34+
</dict>
35+
</array>
2336
<key>CFBundleVersion</key>
2437
<string>$(FLUTTER_BUILD_NUMBER)</string>
2538
<key>LSRequiresIPhoneOS</key>
2639
<true/>
40+
<key>UIApplicationSupportsIndirectInputEvents</key>
41+
<true/>
2742
<key>UILaunchStoryboardName</key>
2843
<string>LaunchScreen</string>
2944
<key>UIMainStoryboardFile</key>
@@ -43,9 +58,5 @@
4358
</array>
4459
<key>UIViewControllerBasedStatusBarAppearance</key>
4560
<false/>
46-
<key>CADisableMinimumFrameDurationOnPhone</key>
47-
<true/>
48-
<key>UIApplicationSupportsIndirectInputEvents</key>
49-
<true/>
5061
</dict>
5162
</plist>

lib/firebase_options.dart

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
// File generated by FlutterFire CLI.
2+
// ignore_for_file: lines_longer_than_80_chars, avoid_classes_with_only_static_members
3+
import 'package:firebase_core/firebase_core.dart' show FirebaseOptions;
4+
import 'package:flutter/foundation.dart'
5+
show defaultTargetPlatform, kIsWeb, TargetPlatform;
6+
7+
/// Default [FirebaseOptions] for use with your Firebase apps.
8+
///
9+
/// Example:
10+
/// ```dart
11+
/// import 'firebase_options.dart';
12+
/// // ...
13+
/// await Firebase.initializeApp(
14+
/// options: DefaultFirebaseOptions.currentPlatform,
15+
/// );
16+
/// ```
17+
class DefaultFirebaseOptions {
18+
static FirebaseOptions get currentPlatform {
19+
if (kIsWeb) {
20+
return web;
21+
}
22+
switch (defaultTargetPlatform) {
23+
case TargetPlatform.android:
24+
return android;
25+
case TargetPlatform.iOS:
26+
return ios;
27+
case TargetPlatform.macOS:
28+
return macos;
29+
case TargetPlatform.windows:
30+
throw UnsupportedError(
31+
'DefaultFirebaseOptions have not been configured for windows - '
32+
'you can reconfigure this by running the FlutterFire CLI again.',
33+
);
34+
case TargetPlatform.linux:
35+
throw UnsupportedError(
36+
'DefaultFirebaseOptions have not been configured for linux - '
37+
'you can reconfigure this by running the FlutterFire CLI again.',
38+
);
39+
default:
40+
throw UnsupportedError(
41+
'DefaultFirebaseOptions are not supported for this platform.',
42+
);
43+
}
44+
}
45+
46+
static const FirebaseOptions web = FirebaseOptions(
47+
apiKey: 'AIzaSyA9llH1GtDQJpKyiv8rk5GahSZK9_hFzYs',
48+
appId: '1:226640418465:web:bfca06186dbb1adcb182e0',
49+
messagingSenderId: '226640418465',
50+
projectId: 'clean-auth-riverpod',
51+
authDomain: 'clean-auth-riverpod.firebaseapp.com',
52+
storageBucket: 'clean-auth-riverpod.appspot.com',
53+
);
54+
55+
static const FirebaseOptions android = FirebaseOptions(
56+
apiKey: 'AIzaSyB5gNlKP4UOfQ2PH-DSLVBVicPPo3LG71c',
57+
appId: '1:226640418465:android:94071e0d89cf0ee8b182e0',
58+
messagingSenderId: '226640418465',
59+
projectId: 'clean-auth-riverpod',
60+
storageBucket: 'clean-auth-riverpod.appspot.com',
61+
);
62+
63+
static const FirebaseOptions ios = FirebaseOptions(
64+
apiKey: 'AIzaSyCO5jotS1i4z4CmVkyQpROWSvRjRxBlhVA',
65+
appId: '1:226640418465:ios:3545341bffe5f1f2b182e0',
66+
messagingSenderId: '226640418465',
67+
projectId: 'clean-auth-riverpod',
68+
storageBucket: 'clean-auth-riverpod.appspot.com',
69+
iosClientId: '226640418465-pormj02s5dnouf8e7o6pq2ftmovipqtk.apps.googleusercontent.com',
70+
iosBundleId: 'com.example.firebaseAuthRiverpod',
71+
);
72+
73+
static const FirebaseOptions macos = FirebaseOptions(
74+
apiKey: 'AIzaSyCO5jotS1i4z4CmVkyQpROWSvRjRxBlhVA',
75+
appId: '1:226640418465:ios:3545341bffe5f1f2b182e0',
76+
messagingSenderId: '226640418465',
77+
projectId: 'clean-auth-riverpod',
78+
storageBucket: 'clean-auth-riverpod.appspot.com',
79+
iosClientId: '226640418465-pormj02s5dnouf8e7o6pq2ftmovipqtk.apps.googleusercontent.com',
80+
iosBundleId: 'com.example.firebaseAuthRiverpod',
81+
);
82+
}

0 commit comments

Comments
 (0)