Hyeyeon blog

[Android] Firebase Database - Cloud Firestore 연동하기 본문

개발/Android

[Android] Firebase Database - Cloud Firestore 연동하기

Hyeyeon.P 2021. 6. 8. 21:47
반응형

1. Cloud Firestore 보안 규칙 설정

* 특정 조건 없이 저장/조회가 가능하도록 설정하려면 아래와같이 규칙을 수정합니다.

2. Android 프로젝트 설정

2-1. build.gradle(Project)

buildscript {
    repositories {
        google() 
    }
    dependencies {
        classpath 'com.google.gms:google-services:4.3.8'
    }
}

allprojects {
    repositories {
        google() 
    }
}

2-2. build.gradle(Module)

plugins {
    id 'com.android.application'
    id 'com.google.gms.google-services'
}

dependencies {
    implementation platform('com.google.firebase:firebase-bom:27.1.0')
    implementation 'com.google.firebase:firebase-firestore'
}

3. Cloud Firestore 데이터 저장

3-1. 저장하려는 데이터를 필드명과 값에 맞춰 Map에 넣습니다. 

3-2. collection에 Map을 추가하여 Cloud Firestore에 저장합니다. 

* 콘솔에 collection과 document를 생성하지 않아도 입력한 값으로 데이터가 저장됩니다. 

private void saveData() {
    FirebaseFirestore db = FirebaseFirestore.getInstance();
    Map<String, Object> user = new HashMap<>();
    user.put("name", "john");
    user.put("age", 22);

    db.collection("member")
        .add(user)
        .addOnSuccessListener(new OnSuccessListener() {
            @Override
            public void onSuccess(DocumentReference documentReference) {
            	// 저장된 데이터의 ID를 획득할 수 있습니다. 
                Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId());
            }
        })
        .addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.w(TAG, "Error adding document", e);
            }
        });
}

4. Cloud Firestore 데이터 조회

private void readData(){
    FirebaseFirestore db = FirebaseFirestore.getInstance();
    db.collection("member")
    	.where("name", "john")
        .get()
        .addOnCompleteListener(new OnCompleteListener() {
            @Override
            public void onComplete(@NonNull Task task) {
                if (task.isSuccessful()) {
                    for (QueryDocumentSnapshot document : task.getResult()) {
                        Map<String, Object> data =  document.getData();
                        String name = data.get("name");
                        ... 
                    }
                } else {
                    Log.w(TAG, "Error getting documents.", task.getException());
                }
            }
        });
}

5. 콘솔에서 데이터 확인하기

* 저장한 값에 맞춰 collection, document, field가 저장된 것을 확인할 수 있습니다.

 

참고

Cloud Firestore

728x90
Comments