Skip to content

Commit

Permalink
✨ Update 로그인/등록화면
Browse files Browse the repository at this point in the history
-연결코드입력 동작 오류 수정

Related to:#30
  • Loading branch information
pakkyunn committed Jun 28, 2024
1 parent 65c4c60 commit 17a9afa
Show file tree
Hide file tree
Showing 9 changed files with 151 additions and 90 deletions.
42 changes: 29 additions & 13 deletions lib/dao/login_register_dao.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Future<bool> saveCodeData(String code, String codeType, int idx) async {
await FirebaseFirestore.instance.collection('CodeData').add({
'code': code,
'host_idx': idx,
'code_state': false
'code_connect_state': false
});
return true;
}
Expand All @@ -40,18 +40,32 @@ Future<void> deleteCodeData(String code) async {
}
}

Future<bool> isValidCodeData(String code) async {
Future<bool> isCodeDataExist(String code) async {
var querySnapshot = await FirebaseFirestore.instance
.collection('CodeData')
.where('code', isEqualTo: code)
.get();

// 문서가 존재하고, code_state가 false인지 확인
// 해당 코드의 문서가 존재하는지 확인
if (querySnapshot.docs.isNotEmpty) {
return true;
}

return false;
}

Future<bool> isCodeConnected(String code) async {
var querySnapshot = await FirebaseFirestore.instance
.collection('CodeData')
.where('code', isEqualTo: code)
.get();

// 해당 코드의 code_connect_state를 확인
if (querySnapshot.docs.isNotEmpty) {
print("존재하는 문서");

for (var doc in querySnapshot.docs) {
if (doc.data()['code_state'] == true) {
if (doc.data()['code_connect_state'] == true) {
print("true리턴");

return true;
Expand All @@ -63,6 +77,8 @@ Future<bool> isValidCodeData(String code) async {
return false;
}



Future<void> saveUserInfo(String userAccount) async {
try {
var userIdx = await getUserSequence() + 1;
Expand All @@ -78,11 +94,11 @@ Future<void> saveUserInfo(String userAccount) async {
}


Future<void> saveLoverIdx(int userIdx, int loverIdx) async {
Future<void> saveLoverUserIdx(int userIdx, int loverUserIdx) async {
try {
// userAccount 필드와 일치하는 문서 검색
var querySnapshot = await FirebaseFirestore.instance.collection('userData')
.where('user_account', isEqualTo: userIdx)
.where('user_idx', isEqualTo: userIdx)
.get();

// 문서가 존재하는 경우 업데이트
Expand All @@ -92,11 +108,11 @@ Future<void> saveLoverIdx(int userIdx, int loverIdx) async {
String docId = doc.id;

// 새로운 필드를 추가하여 문서 업데이트
await FirebaseFirestore.instance.collection('userData').doc(docId).update({'lover_idx': loverIdx});
await FirebaseFirestore.instance.collection('userData').doc(docId).update({'lover_idx': loverUserIdx});
}
print('문서 업데이트 완료');
} else {
print('해당 user_account를 가진 문서가 없습니다');
print('해당 user_idx를 가진 문서가 없습니다');
}
} catch (e) {
print('문서 업데이트 중 오류 발생: $e');
Expand Down Expand Up @@ -124,7 +140,7 @@ dynamic getSpecificCodeData(String code, String dataField) async {

Future<void> updateCode(String code, int userIdx) async {
try {
// userAccount 필드와 일치하는 문서 검색
// userIdx 필드와 일치하는 문서 검색
var querySnapshot = await FirebaseFirestore.instance.collection('CodeData')
.where('code', isEqualTo: code)
.get();
Expand All @@ -136,26 +152,26 @@ Future<void> updateCode(String code, int userIdx) async {
String docId = doc.id;

// 새로운 필드를 추가하여 문서 업데이트
await FirebaseFirestore.instance.collection('CodeData').doc(docId).update({'code_state': true});
await FirebaseFirestore.instance.collection('CodeData').doc(docId).update({'code_connect_state': true});
await FirebaseFirestore.instance.collection('CodeData').doc(docId).update({'guest_idx': userIdx});
}
print('문서 업데이트 완료');
} else {
print('해당 userAccount를 가진 문서가 없습니다');
print('해당 코드가 포함된 문서가 없습니다');
}
} catch (e) {
print('문서 업데이트 중 오류 발생: $e');
}
}


// dynamic getMyNickname(int loverIdx) async {
// dynamic getMyNickname(int loverUserIdx) async {
// Map<String, dynamic> results = {};
// dynamic result;
//
// Query<Map<String, dynamic>> query = FirebaseFirestore.instance
// .collection('userData')
// .where('user_idx', isEqualTo: loverIdx);
// .where('user_idx', isEqualTo: loverUserIdx);
//
// var querySnapShot = await query.get();
// for (var doc in querySnapShot.docs) {
Expand Down
6 changes: 3 additions & 3 deletions lib/dao/user_dao.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ Future<void> saveUserData(UserModel user) async {
});
}

Future<Map<String, dynamic>> getUserData(String userAccount) async {
Future<Map<String, dynamic>> getUserData(int userIdx) async {
Map<String, dynamic> results = {};

Query<Map<String, dynamic>> query = FirebaseFirestore.instance
.collection('userData')
.where('user_account', isEqualTo: userAccount);
.where('user_idx', isEqualTo: userIdx);

var querySnapShot = await query.get();
for (var doc in querySnapShot.docs) {
Expand Down Expand Up @@ -74,7 +74,7 @@ Future<void> updateSpecificUserData(int userIdx, String updateItem, var updateCo
Future<void> deleteUserData(int userIdx) async {
QuerySnapshot<Map<String, dynamic>> querySnapshot = await FirebaseFirestore.instance
.collection('userData')
.where('user_account', isEqualTo: userIdx)
.where('user_idx', isEqualTo: userIdx)
.get();

for (DocumentSnapshot<Map<String, dynamic>> docSnapshot in querySnapshot.docs) {
Expand Down
4 changes: 2 additions & 2 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ Future<void> main() async {
);

int userIdx =
stringToInt((await const FlutterSecureStorage().read(key: "userIdx"))!);
stringToInt((await const FlutterSecureStorage().read(key: "userIdx"))??"");
int appLockState =
stringToInt((await const FlutterSecureStorage().read(key: "appLockState"))!);
stringToInt((await const FlutterSecureStorage().read(key: "appLockState"))??"");
int userState = await getSpecificUserData(userIdx, 'user_state')?? 2;

initializeDateFormatting().then((_) async =>
Expand Down
12 changes: 7 additions & 5 deletions lib/screen/login/login_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ class _RegisterScreen extends State<LoginScreen> {
),
child: InkWell(
onTap: () async {
switch (await getSpecificUserData(userProvider.userAccount, "user_state")??2) {
switch (await getSpecificUserData(userProvider.userIdx, "user_state")??2) {
case 0:
Navigator.pushReplacement(
context,
Expand All @@ -146,8 +146,9 @@ class _RegisterScreen extends State<LoginScreen> {
userProvider.loginType = 1;
});
await saveUserInfo(userProvider.userAccount);
setState(() async {
userProvider.userIdx = await getUserSequence();
var userIdx = await getUserSequence();
setState(() {
userProvider.userIdx = userIdx;
});
Navigator.pushReplacement(
context,
Expand Down Expand Up @@ -205,8 +206,9 @@ class _RegisterScreen extends State<LoginScreen> {
userProvider.loginType = 2;
});
await saveUserInfo(userProvider.userAccount);
setState(() async {
userProvider.userIdx = await getUserSequence();
var userIdx = await getUserSequence();
setState(() {
userProvider.userIdx = userIdx;
});
Navigator.pushReplacement(
context,
Expand Down
Loading

0 comments on commit 17a9afa

Please sign in to comment.