-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
미해결
로그문제
21.11.25 18:14 작성 조회수 187
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
지금 로그가 영상처럼 key값이 나오지 않고 true만 나오는 중인데 뭐가 문제일까요 ㅠㅠㅠㅠㅠ
답변을 작성해보세요.
0
0
whdgus928
질문자2021.11.29
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
개복치개발자
지식공유자2021.11.26
아래의 정보를 기입해주시면 도움드릴 수 있을 것 같아요~
Q. 질문은 어떻게 하면 좋을까요?
강의 질문/답변을 남겨주세요. 질문을 주실 때 최대한 많은 정보를 알려주시면 좋습니다. 아래 정보를 모두 주시면 문제를 파악하기 좋습니다 :)
- 시청 중인 강의의 부분 (수업 제목 및 타임코드)
2. 내가 작성한 코드
3. 에러가 나온다면, 어떻게 나오는지 (에러 내용)
4. Firebase에 어떤 데이터가 들어있는지
답변 3