[Android] 좋아요 표시하기

728x90

🟦 좋아요 표시하기

▶️ 좋아요 표시하기

  • User가 좋아요 표시한 회원들에 한해서 기록에 남길 용도
  • 1) 사용자가 CardStackView에서 오른쪽 swiped 처리한 회원들에 한해서 ‘좋아요’ 목록에 추가하고자 한다.
  • 2) 필요한 정보 : 현재 로그인한 User의 uid값.
    • 이 uid 값의 하위에 ‘좋아요’ 대상 회원 uid 들을 기록할 예정이다.
    3) RealTime DB 상에 저장할 userLike 데이터 정보는 다음의 구조를 따른다.


🟧 MainActivity.kt

  • 이 곳에서 cardStackView의 LayoutManager를 사용하여

재정의한 onCardSwiped() 메소드 내부에서 ‘right’ 방향에 대한 사용자 넘김 시,

userDataList에 해당 회원 uid 값만 담고, userLikeOtherUser() 메소드에 인수로 보낸다.

val cardStackView = findViewById<CardStackView>(R.id.cardStackView)

        manager = CardStackLayoutManager(baseContext, object : CardStackListener {
            override fun onCardDragging(direction: Direction?, ratio: Float) {

            }
						//이 부분에서 사용자가 넘기는 동작에 대한 이벤트 처리를 할 예정 
            override fun onCardSwiped(direction: Direction?) {

                if(direction == Direction.Right) { //오른쪽 넘김 시
                    Toast.makeText(this@MainActivity, "Liked", Toast.LENGTH_LONG).show()

                    Log.d("test", usersDataList[userCount].uid.toString())

                    userLikeOtherUser(uid, usersDataList[userCount].uid.toString())
                }

                if(direction == Direction.Left) { //왼쪽 넘김 시
                    Toast.makeText(this@MainActivity, "Don't Liked", Toast.LENGTH_LONG).show()
                }

                userCount = userCount + 1

                if(userCount == usersDataList.count()) { //모두 다 넘겼으면
                    getUserDataList(currentUserGender) //다시 처음부터 user 리스트 받아올 것

                    Toast.makeText(this@MainActivity, "다시 시작", Toast.LENGTH_LONG).show()

                }
            }

            override fun onCardRewound() {

            }

            override fun onCardCanceled() {

            }

            override fun onCardAppeared(view: View?, position: Int) {

            }

            override fun onCardDisappeared(view: View?, position: Int) {

            }

        })
  • userLikeOtherUser() 메소드 내부
  • RealTimeDB 상에 userLike 데이터의 구조대로 저장하는 부분
//회원이 좋아요 한 회원들을 기록 List 에 담기
//-> 나의 uid, 대상이 되는 좋아요 대상 회원의 uid 값을 저장
private fun userLikeOtherUser(myUid : String, otherUid: String) {

    //나의 uid를 상위에, 하위에는 내가 좋아요한 uid 회원들을 나열하는 구조로 DB에 저장
    FirebaseRef.userLikeRef.child(myUid).child(otherUid).setValue("true")

}

 

728x90