해결됨
[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
댓글 수정 및 삭제 구현 관련해 질문드립니다
안녕하세요 선생님, [초급편] 안드로이드 커뮤니티 앱 만들기를 완강한 수강생입니다. 게시글 수정/삭제 파트와 아래 두 질문을 참고해가며 현재 댓글 수정/삭제를 구현하기 위해 애쓰는 중인데, 잘 되지 않아 질문드립니다.https://www.inflearn.com/questions/411607https://www.inflearn.com/questions/619233게시글 설정과 마찬가지로 내가 쓴 댓글에만 보이는 설정 버튼을 클릭하면다이얼로그를 통해 수정/삭제로 진입하게끔 만드는 데 까지는 성공했습니다.첫 번째 질문입니다.우선 수정 기능의 경우 아래 ????? 부분에 어떤 값을 넣어야 할지 감이 안 옵니다. BoardReadActivity.kt
// 댓글 클릭하면 -> 대화상자 뜸
// 파이어베이스의 댓글 키를 기반으로 댓글 데이터(=본문+uid+시간) 받아옴
cLV.setOnItemClickListener { parent, view, position, id ->
// 명시적 인텐트 -> 다른 액티비티 호출
val intent = Intent(baseContext, CommentEditActivity::class.java)
// 댓글수정 액티비티로 댓글의 키 값 전달
intent.putExtra("?????", ?????)
// 댓글수정 액티비티 시작
startActivity(intent)
}"key", key를 넣으면 댓글이 아닌 게시글의 키 값이 되어 댓글이 수정되지 않고,"commentKey", commentKey를 넣으면 앱이 죽습니다. 게시판 프래그먼트에서 리스트뷰 아이템을 클릭하면 게시글로 이동하듯댓글 리스트뷰 아이템을 클릭하면 수정 액티비티로 넘어가는 것도 시도해봤는데요, 빨간색이 게시글의 키, 파란색이 댓글의 키일 때 다행히 댓글의 키는 잘 받아오는데 댓글의 키'만' 알다보니 파이어베이스로부터 기존 댓글 내용을 받아올 수도, 수정한 내용을 업데이트 할 수도 없습니다.BoardReadActivity.kt
// 댓글 클릭하면 -> 대화상자 뜸
// 파이어베이스의 댓글 키를 기반으로 댓글 데이터(=본문+uid+시간) 받아옴
cLV.setOnItemClickListener { parent, view, position, id ->
// 명시적 인텐트 -> 다른 액티비티 호출
val intent = Intent(baseContext, CommentEditActivity::class.java)
// 댓글수정 액티비티로 댓글의 키 값 전달
intent.putExtra("commentKey", commentKeyList[position])
// 댓글수정 액티비티 시작
startActivity(intent)
}다이얼로그에서 댓글수정 액티비티로 넘길 때와 마찬가지로 ????? 부분에 어떤 값을 넣어야 할지 모르겠습니다.CommentEditActivity.kt
// 댓글을 수정
private fun editCommentData(commentKey: String) {
// 수정한 값으로 업데이트
FBRef.commentRef.?????.child(commentKey).setValue(CommentModel(
// 제목 및 본문은 직접 수정한 내용으로,
binding.commentMainArea.text.toString(),
// uid와 시간은 자동 설정됨
FBAuth.getUid(),
FBAuth.getTime()
))
// 수정 확인 메시지
Toast.makeText(this, "댓글이 수정되었습니다", Toast.LENGTH_SHORT).show()
// 댓글수정 액티비티 종료
finish()
}혼자 해결하려니 너무 맨 땅에 헤딩이라ㅠㅠ 질문 올립니다.