Skip to content

Commit

Permalink
회원 탈퇴 기능 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
thruthesky committed Jul 16, 2024
1 parent 67dbcfa commit 4120087
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 15 deletions.
3 changes: 2 additions & 1 deletion lib/screens/mypage/LoginScreen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,8 @@ Widget _buildLogin(BuildContext context, WidgetRef ref) {
// Create a credential from the access token
final OAuthCredential facebookAuthCredential =
FacebookAuthProvider.credential(
loginResult.accessToken!.token);
loginResult.accessToken!.token,
);

// Once signed in, return the UserCredential
FirebaseAuth.instance
Expand Down
59 changes: 46 additions & 13 deletions lib/screens/mypage/MyPageScreen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ import 'dart:io';

import 'package:blueberry_flutter_template/screens/mypage/camera/setting_inside_account_manager.dart';
import 'package:blueberry_flutter_template/screens/mypage/camera/setting_inside_camera_media.dart';
import 'package:cloud_functions/cloud_functions.dart';
import 'package:easy_engine/easy_engine.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
Expand Down Expand Up @@ -50,14 +52,14 @@ class MyPageScreen extends ConsumerWidget {
)
],
),
SizedBox(
const SizedBox(
height: 40,
),
const CustomDivider(),
GestureDetector(
onTap: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => FixSettingAccountManager(),
builder: (context) => const FixSettingAccountManager(),
));
},
child: const Expanded(
Expand Down Expand Up @@ -121,7 +123,7 @@ class MyPageScreen extends ConsumerWidget {
GestureDetector(
onTap: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => FixSettingCameraMediaPage(),
builder: (context) => const FixSettingCameraMediaPage(),
));
},
child: const Expanded(
Expand All @@ -140,7 +142,7 @@ class MyPageScreen extends ConsumerWidget {
GestureDetector(
onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (context) {
return SettingPage();
return const SettingPage();
}));
},
child: const Expanded(
Expand Down Expand Up @@ -168,6 +170,37 @@ class MyPageScreen extends ConsumerWidget {
),
)),
),

//Logout button
GestureDetector(
onTap: () async {
try {
final re = await engine.deleteAccount();
print(re);
} on FirebaseFunctionsException catch (e) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('Error: ${e.code}/${e.message}'),
),
);
} catch (e) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(
'Error: $e'), // e.code: internal, e.message: INTERNAL
),
);
}
},
child: const Expanded(
child: ListTile(
leading: Icon(Icons.person_off),
title: Text(
"회원탈퇴",
style: TextStyle(fontSize: 20),
),
)),
),
],
),
),
Expand Down Expand Up @@ -215,7 +248,7 @@ class MyPageScreen extends ConsumerWidget {
builder: (context) {
return Padding(
padding: MediaQuery.of(context).viewInsets,
child: Container(
child: SizedBox(
height: 150,
child: SettingsBottomSheet(),
),
Expand All @@ -232,24 +265,24 @@ class MyPageScreen extends ConsumerWidget {

Widget _uploadProfileImageButtons(FirestoreService firestoreService,
FirebaseStorageService firebaseStorageService, BuildContext context) {
final _userId = FirebaseAuth.instance.currentUser!.uid;
final userId = FirebaseAuth.instance.currentUser!.uid;

return IconButton(
onPressed: () async {
try {
var imageUrl = '';

if (kIsWeb) {
final ImagePicker _picker = ImagePicker();
final ImagePicker picker = ImagePicker();
final XFile? image =
await _picker.pickImage(source: ImageSource.gallery);
await picker.pickImage(source: ImageSource.gallery);

image?.readAsBytes().then((value) async {
imageUrl = await firebaseStorageService.uploadImageFromWeb(
value, ImageType.profileimage,
fixedFileName: _userId);
fixedFileName: userId);

firestoreService.createProfileIamge(_userId, imageUrl);
firestoreService.createProfileIamge(userId, imageUrl);
});
}
if (!kIsWeb) {
Expand All @@ -259,9 +292,9 @@ Widget _uploadProfileImageButtons(FirestoreService firestoreService,
// 선택된 이미지를 Firebase Storage에 업로드
imageUrl = await firebaseStorageService.uploadImageFromApp(
File(pickedFile.path), ImageType.profileimage,
fixedFileName: _userId);
fixedFileName: userId);

firestoreService.createProfileIamge(_userId, imageUrl);
firestoreService.createProfileIamge(userId, imageUrl);
}
}
if (imageUrl != '') {
Expand All @@ -271,5 +304,5 @@ Widget _uploadProfileImageButtons(FirestoreService firestoreService,
}
} catch (e) {}
},
icon: Icon(Icons.settings));
icon: const Icon(Icons.settings));
}
3 changes: 2 additions & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ dependencies:
firebase_storage: ^12.1.0
firebase_analytics: ^11.1.0
cloud_firestore: ^5.0.2
cloud_functions: ^5.0.2

# UI
cupertino_icons: ^1.0.6
Expand Down Expand Up @@ -66,7 +67,7 @@ dependencies:
firebase_messaging: 15.0.2
flutter_local_notifications: ^17.2.1
flutter_secure_storage: ^4.2.1
easy_engine: ^0.0.3
easy_engine: ^0.0.4
flutter_facebook_auth: ^6.0.4

dev_dependencies:
Expand Down

0 comments on commit 4120087

Please sign in to comment.