인프런 커뮤니티 질문&답변

최대환님의 프로필 이미지

작성한 질문수

[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)

북마크 데이터 저장

realtimeDB에서 북마크 리스트 만들때 key를 똑같이 하는이유

23.09.12 10:33 작성

·

229

·

수정됨

0

'북마크 데이터 저장' 강의에서 북마크 데이터를 저장할때 키값을 기존 contents에 있는 key값으로 넣어주는 이유가 있을까요?

저번 왕초보편에서는 그냥 bookmark의 child로 유저의uid만 넣고 key값은 신경을 안썼던거 같은데 이번에는 북마크할 컨텐츠의 key값도 받아와서 그값으로 저장을 하시길래 그렇게 하면 어떤 장점들이 있는지 궁금합니다!!

<왕초보편 방식>

contentRvItemBinding.bookmarkArea.setOnClickListener {
    val myBookmarkRef = database.getReference("bookmark")

    val title = contentModel.title
    val imageTitle = contentModel.imageTitle
    val url = contentModel.url
    val model = ContentModel(title, imageTitle, url)

    myBookmarkRef
        .child(Firebase.auth.currentUser!!.uid)
        .push()
        .setValue(model)

    Toast.makeText(context, contentModel.title, Toast.LENGTH_SHORT).show()
} 

스크린샷 2023-09-12 오전 10.30.26.png

<현재>

contentRvItemBinding.bookmarkArea.setOnClickListener {

                FBRef.bookmarkRef
                    .child(FBAuth.getUid())
                    .child(key)
                    .push()
                    .setValue("good")

                Toast.makeText(context, "${contentRvItemBinding.textArea.text} 북마크 등록", Toast.LENGTH_SHORT).show()
            }

스크린샷 2023-09-12 오후 12.15.16.png

답변 2

0

개복치개발자님의 프로필 이미지
개복치개발자
지식공유자

2023. 09. 16. 18:05

Firebase RealtimeDatabase가 일반적인 관계형 데이터베이스와 다른 면이 있긴 하지만..

대략적으로 그렇게 생각해주셔도 될 것 같습니다 :)

 

0

최대환님의 프로필 이미지
최대환
질문자

2023. 09. 12. 14:00

후속 강의를 들어보니 나중에 북마크안에 있는 데이터의 키값과 컨텐츠의 키값을 비교해서 북마크를 등록하고 삭제하려고 그러는거 같습니다!

그럼 만약 이걸 관계형데이터베이스로 바꿔본다면 북마크는 uid 하나당 여러개의 컨텐츠를 가질 수 있는 관계가 되니까 one to many 관계가 되는건가요?