패스트캠퍼스 챌린지

[패스트캠퍼스 챌린지 29일차] Android tinder 앱 마무리

사용자들끼리 LIKE를 하게되면 매칭된 리스트를 보여줍니다.

틴더앱에서 사용되는 기능들을 비슷하게 만들어보는 과정이었습니다.

class DBKey {
    companion object{
        const val USERS = "Users"
        const val LIKED_BY = "likedBy"
        const val LIKE = "like"
        const val DIS_LIKE = "disLike"
        const val USER_ID = "userId"
        const val NAME = "name"
        const val MATCH = "match"
    }
}

자주 사용되는 용어들은 class로 정리해주었습니다. 오타로 인해서 오류가 발생하는 경우를 줄일 수 있었습니다.

private fun saveMatchIfOtherUserLikedMe(otherUserId : String){
        val otherUserDB = userDB.child(getCurrentUserID()).child(LIKED_BY).child(LIKE).child(otherUserId)
        otherUserDB.addListenerForSingleValueEvent(object : ValueEventListener{
            override fun onDataChange(snapshot: DataSnapshot) {
                if(snapshot.value == true){
                    userDB.child(getCurrentUserID())
                        .child(LIKED_BY)
                        .child(MATCH)
                        .child(otherUserId)
                        .setValue(true)

                    userDB.child(otherUserId)
                        .child(LIKED_BY)
                        .child(MATCH)
                        .child(getCurrentUserID())
                        .setValue(true)
                }
            }

            override fun onCancelled(error: DatabaseError) {
                TODO("Not yet implemented")
            }

        })
    }

패스트캠퍼스 바로가기 -> https://bit.ly/3FVdhDa

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.