inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

북마크 탭 만들기 - 1

로그문제

305

whdgus928

작성한 질문수 2

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
 
지금 로그가 영상처럼 key값이 나오지 않고 true만 나오는 중인데 뭐가 문제일까요 ㅠㅠㅠㅠㅠ

kotlin android firebase

답변 3

0

개복치개발자

이 부분을 왼쪽으로 쭉 끌어당기시면 다른 로그도 보일 것 같아요~

0

whdgus928

1.  북마크 텝 만들기 1 (8분 10초 쯤 ..)

2.package com.example.mysolelife.fragments


import android.os.Bundle
import android.provider.ContactsContract
import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.databinding.DataBindingUtil
import androidx.navigation.findNavController
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.example.mysolelife.R
import com.example.mysolelife.contentsList.BookmarkRVAdapter
import com.example.mysolelife.contentsList.ContentModel
import com.example.mysolelife.databinding.FragmentBookmarkBinding
import com.example.mysolelife.utils.FBAuth
import com.example.mysolelife.utils.FBRef
import com.google.firebase.database.DataSnapshot
import com.google.firebase.database.DatabaseError
import com.google.firebase.database.ValueEventListener


class BookmarkFragment : Fragment() {

private lateinit var binding : FragmentBookmarkBinding

private val TAG = BookmarkFragment::class.java.simpleName

val bookmarkIdList = mutableListOf<String>()
val items = ArrayList<ContentModel>()
val itemKeyList = ArrayList<String>()

lateinit var rvAdapter : BookmarkRVAdapter

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

}

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
binding = DataBindingUtil.inflate(inflater,R.layout.fragment_bookmark,container,false)


//1. 전체 카테고리에 있는 컨텐츠 데이터들을 다 가져옴
getCategoryData()


//2. 사용자가 북마크 한 정보를 다 가져옴

getBookmarkData()

//3. 전체 컨텐츠 중에서, 사용자가 북마크한 정보만 보여줌

rvAdapter = BookmarkRVAdapter(requireContext(),items,itemKeyList,bookmarkIdList)

val rv : RecyclerView = binding.bookmarkRV
rv.adapter = rvAdapter

rv.layoutManager = GridLayoutManager(requireContext(),2)

binding.homeTap.setOnClickListener{ //홈텝 클릭시 어떻게 하겠다 ~
it.findNavController().navigate(R.id.action_bookmarkFragment_to_homeFragment)
}

binding.talkTap.setOnClickListener{
it.findNavController().navigate(R.id.action_bookmarkFragment_to_talkFragment)
}

binding.tipTap.setOnClickListener{
it.findNavController().navigate(R.id.action_bookmarkFragment_to_tipFragment)
}

binding.storeTap.setOnClickListener{
it.findNavController().navigate(R.id.action_bookmarkFragment_to_storeFragment)
}

return binding.root
}


private fun getCategoryData(){

val postListener = object : ValueEventListener { //컨텐츠 아이디 값을 받아오고 있음 firebase에 컨텐츠들을 저장
override fun onDataChange(dataSnapshot: DataSnapshot) {

for (DataModel in dataSnapshot.children){

Log.d(TAG,DataModel.toString())
val item = DataModel.getValue(ContentModel::class.java)
items.add(item!!)
itemKeyList.add(DataModel.key.toString())

}

rvAdapter.notifyDataSetChanged()

}

override fun onCancelled(databaseError: DatabaseError) {
// Getting Post failed, log a message
Log.w("ContentListActivity", "loadPost:onCancelled", databaseError.toException())
}
}
FBRef.category1.addValueEventListener(postListener)
FBRef.category2.addValueEventListener(postListener)

}

private fun getBookmarkData(){

val postListener = object : ValueEventListener { //컨텐츠 아이디 값을 받아오고 있음 firebase에 컨텐츠들을 저장
override fun onDataChange(dataSnapshot: DataSnapshot) {

for (DataModel in dataSnapshot.children){

Log.e(TAG,DataModel.toString())
bookmarkIdList.add(DataModel.key.toString())

}

}

override fun onCancelled(databaseError: DatabaseError) {
// Getting Post failed, log a message
Log.w("ContentListActivity", "loadPost:onCancelled", databaseError.toException())
}
}
FBRef.bookmarkRef.child(FBAuth.getUid()).addValueEventListener(postListener) //FBRef 에 있는 북마크 Ref 값을 가져옴

}


}

3. 에러발생 

8분쯤에 나오는 화면처럼 키값이 무엇이고 벨류 값은 무엇이다 라고 나오는걸 볼 수 있는데 제가 실행하면 아래 사진처럼 "북마크 true" 만 뜨네요 ..

0

개복치개발자

아래의 정보를 기입해주시면 도움드릴 수 있을 것 같아요~

Q. 질문은 어떻게 하면 좋을까요?

강의 질문/답변을 남겨주세요. 질문을 주실 때 최대한 많은 정보를 알려주시면 좋습니다. 아래 정보를 모두 주시면 문제를 파악하기 좋습니다 :)

  1. 시청 중인 강의의 부분 (수업 제목 및 타임코드)
    2. 내가 작성한 코드
    3. 에러가 나온다면, 어떻게 나오는지 (에러 내용)
    4. Firebase에 어떤 데이터가 들어있는지

이미지가 기본이미지인지 확인

0

143

1

NavController error 발생

0

155

1

fragment 생성하고 메인에서 불러왔는데 안뜹니다.

0

149

2

67강 댓글

0

113

2

7강 데이터바인딩 에러

0

129

2

Firebase 스토리지 유료화 문제

1

305

2

게시글 이미지가 파이어베이스에 저장되지 않습니다.

0

191

2

AVD 갤러리에 이미지 저장 안되는 문제

0

255

2

이미지 받아오는 방법?

0

211

2

회원탈퇴 기능을 추가하려고 합니다.

0

196

2

상태바 질문 드립니다.

0

119

1

섹션2 인트로 페이지 꾸미기 질문 드립니다.

0

121

1

게시판 글을 길게 쓸경우

0

129

2

로그인 로그아웃

0

185

2

갤럭시 연결시 게시판에 업로드한 사진이 보이지 않아요.

0

221

2

웹뷰 AVD 실행안됨

0

198

1

자막켜기가 안되요 ㅜ.ㅜ

1

195

1

리사이클러뷰, 그리드레이아웃 오류

0

192

2

리사이클러뷰 오류 해결 방법이 궁금합니다.

0

200

1

firebase 스마트폰으로 연결이 안되는데 원인이 있을까요

0

266

2

안드로이드 스튜디오 게시글 이미지 업로드 유무

0

228

1

firebase 설정 오류

0

309

2

홈 화면 커뮤니티

0

181

1

게시판 글 읽기

0

244

2