Android Studio

Android - FireStore 규칙 설정 / 데이터 가져오기

내손은개발 🐾 2024. 3. 12. 20:59

 

지난 글에서 로그인 기능, bottomNavigation까지 완료 후 

 

 

Cloud Firestore로 데이터 가져오기  |  Firebase

의견 보내기 Cloud Firestore로 데이터 가져오기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 세 가지 방법으로 Cloud Firestore에 저장된 데이터를 검색할 수 있

firebase.google.com

 

Firebase 공식문서대로 진행해보면

 

위의 공식문서처럼 firebase의 인스턴스를 제작한다. (만들고싶은 Fragment에 제작하면 된다.)

val db = Firebase.firestore

 

데이터는 FireStore을 이용할 것이라 다음꺼로 넘어가기

 

db.collection(컬렉션 이름(1)).document(article(문서)(2))를 get()으로 가져올 수 있는 것 같다.

class HomeFragment: Fragment(R.layout.fragment_home) {

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        //firestore 인스턴스 제작
        val db = Firebase.firestore

        db.collection("컬렉션 이름").document("articles(문서)이름") //위에 사진 내용 잘 채우길
            .get()
            .addOnSuccessListener { result ->
                val article = result.toObject<ArticleModel>()
                Log.e("homeFragment",article.toString())

            }
            .addOnFailureListener {
                it.printStackTrace() //로그찍기
            }
    }
}

 

공식문서로만 만들기에는 힘들어서 구글링의 도움을 받았다.

하나 더 알게된 점은  이렇게하고 실행하면 데이터를 받아올 수 없다.

왜냐면 처음 FireStore을 만들때 규칙을 정해주지 않았기때문이다!

구글링 안했으면 정말 오래걸렸을텐데 다행이다.

 

여기서 왼쪽 하단의 규칙 플레이그라운드를 누르고

아무렇게나 입력하고 아무 인증을 주어도 읽기가 거부되었다고 뜬다

여기에 내가 만든 주소를 넣고 허용을 해줘야한다.

true로 진행하면 허용이 뜨지만 인증을 하지않은 유저도 허용되기 때문에 위험하다.

첫 프로젝트에서 로그인기능없이 방명록을 작성하는 칸에서 사용을 해봐서 기억이 난다.

저번 글에서 로그인 기능을 넣었기때문에 Auth를 가져와서 인증이 되면 허용을 해주고 아니면 거부하게 만든다.