안드로이드

안드로이드 파이어베이스 클라우드 파이어 스토어(Cloud FireStore 예제!

알통몬_ 2018. 7. 13. 10:15
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


파이어베이스에는 RealtimeDatabase 말고 베타로 테스트 중인

Cloud FireStore 라는 데이터베이스를 추가로 지원합니다.


이번 포스팅에서는 이 Cloud FireStore를 사용하는 방법을

예제를 통해 알아보겠습니다.

먼저 안드로이드 프로젝트를 파이어베이스에 추가하는 방법입니다.

2017/03/19 - [안드로이드] - 안드로이드 앱, 안드로이드 프로젝트에 firebase 추가하는 방법


프로젝트를 추가했다면 먼저 Cloud FireStore 사용을 위한 의존성을 추가해줍니다.

implementation 'com.google.firebase:firebase-firestore:17.0.2'


Cloud FireStore의 데이터 모델과 구조

https://firebase.google.com/docs/firestore/data-model?authuser=0

파이어베이스 공식 문서에서 데이터 모델과 구조에 대해 자세히 공부할 수 있습니다.

NoSQL 문서 중심 데이터베이스이고 Collection 과 Document 의 조합으로

데이터베이스를 구성합니다.



데이터를 추가하는 방법과 

데이터를 가져오는 방법에 대해서만 간단하게 알아보겠습니다.


0. Cloud FireStore 인스턴스 초기화하기

저는 클래스의 필드에 추가해주었습니다.

private FirebaseFirestore db = FirebaseFirestore.getInstance();


1. 데이터 추가하기 ( 데이터 쓰기 )

// 추가하고 싶은 데이터를 Map 형식으로 만들어줍니다.
Map<String, Object> user = new HashMap<>();
user.put("name", "Altong Park");
user.put("age", 27);
user.put("gender", "Male");

// collection() 안에 문자열은 본인이 원하는 대로 정해주시면 됩니다.
db.collection("users")
.add(user)
.addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
@Override
public void onSuccess(DocumentReference documentReference) {
//데이터가 성공적으로 추가되었을 때
Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId());
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
//에러가 발생했을 때
Log.w(TAG, "Error ", e);
}
});


2. 데이터 가져오기 ( 데이터 읽기 )

db.collection("users")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
// 데이터를 가져오는 작업이 잘 동작했을 떄
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
Log.d(TAG, document.getId() + " => " + document.getData());
}
}
// 데이터를 가져오는 작업이 에러났을 때
else {
Log.w(TAG, "Error => ", task.getException());
}
}
});


반응형