CloudFirestore를 사용하는 간단한 방법(Android)

소개



CloudFirestore 안드로이드에서 기본적인 사용법을 메모.
(도입으로부터 간단한 데이터의 송신 수신 등.)
사용 언어는 Java, 개발 환경은 AndroidStudio를 사용하고 있습니다.
첫 투고이므로 보기 어려운 점이 많이 있다고 생각합니다만 양해를.

Firestore 정보



Firestore는 NoSQL 데이터베이스입니다.
파일 구조는 이미지와 같습니다.
컬렉션 내에 문서가 들어 있고 그 안의 데이터를 사용합니다.
문서 내에 하위 컬렉션을 만들 수도 있습니다.


프로젝트 만들기, 준비



Firebase 홈페이지에서 프로젝트 만들기를 클릭하고 프로젝트 추가를 클릭하고 원하는 이름을 설정하고 애널리틱스를 활성화하고 계정을 선택하여 프로젝트를 만듭니다.
앱은 이번에는 안드로이드이므로 안드로이드를 선택.

Android 앱에 Firebase 추가



1단계 앱 등록
여기서 입력은 안드로이드 패키지에서만 괜찮습니다.
필요한 경우는 닉네임이나 SHA-1을 기입. (이번에는 입력 없음)
2단계 설정 파일 다운로드
google-services.json 다운로드
왼쪽 상단 표시 방법을 Project로 전환 app에 json 파일을 도입
사이트의 오른쪽 이미지와 같은 위치에 json 파일이 있으면 OK
3단계 Firebase SDK 추가
사이트에 표기되어 있는 내용을 빌드 그레이들에 추가.
사이트에 표기되어 있는 내용과는 별도로 이하의 내용을 앱 레벨의 그레이들에 추가.

dependencies {
implementation 'com.google.firebase:firebase-core:17.0.0'
implementation 'com.google.firebase:firebase-firestore:20.0.0'
}

버전은 이 사이트 아래쪽의 사용 가능한 라이브러리로부터 최신의 것을 조사해 표기.

4단계 앱을 실행하여 설치 확인
여기는 끝나지 않는 경우가 있기 때문에 스킵으로 괜찮습니다.
확인은 앱을 실행하고 logcat에서 I/FirebaseInitProvider : FirebaseApp initialization successful이 표시되면 완료되었습니다.
5단계 firestore 만들기
사이트 왼쪽 탭에서 Cloud Firestore를 클릭하여 데이터베이스 만들기
규칙은 이번에는 프로덕션 환경 모드를 선택.
(테스트 모드는 30일 갱신하지 않으면 액세스 거부가 됩니다)
위치는 적절한 장소를 선택합니다.
그대로라면 규칙이 엄격하기 때문에
write: if false를 write: if true로 변경합니다.

이것으로 준비가 완료되었습니다.

코드



송신·수신과 그 외 사용할 수 있는 것 같은 코드를 조금 기술합니다.
Firestore를 확인하면서 실행해 보세요.

문서 및 컬렉션 지정



다음 문장으로 지정할 수 있습니다.
지정한 문서/콜렉션이 없으면 데이터를 저장할 때 작성됩니다.

DocumentReference mDocRef = FirebaseFirestore.getInstance().document("コレクション名/ドキュメント名");

전송



우선 처음에 송신 처리의 코드를 소개합니다.

Map 저장



Map<String, Object> data = new HashMap<>();
       data.put("A","りんご");
       data.put("B","みかん");
       data.put("C","ぶどう");
        mDocRef.set(data);

목록 저장



ArrayList<String> group = new ArrayList<>();
        group.add("りんご");
        group.add("みかん");
        group.add("ぶどう");
        Map<String, Object> data = new HashMap<>();
        data.put("フィールド名",group);
        mDocRef.set(data);

수신



다음으로 Firebase 값을 가져올 때 코드를 소개합니다.

Map 얻기



mDocRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                if (task.isSuccessful()) {
                    DocumentSnapshot document = task.getResult();
                    if (document.exists()) {
                       //値が取得できた時の処理
                        String save = (String) document.get("フィールド名");//
                    } else {
                        //値が存在しなかった時の処理
                } else {
                    //取得に失敗した時の処理
                }

            }
        });

목록 얻기



mDocRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                if (task.isSuccessful()) {
                    DocumentSnapshot document = task.getResult();
                    if (document.exists()) {
                       //値が取得できた時の処理
                       ArrayList<String> group =  (ArrayList<String>) document.get("フィールド名");
                    } else {
                       //値が存在しなかった時の処理
                    }
                } else {
                    //値の取得に失敗した時の処理
                }

            }
        });

그 밖에 자주 사용하는 코드



다음에 사용할 것 같은 코드를 기술합니다.

저장이 성공 · 실패했을 때의 처리



데이터를 송신하는 처리 후에 기술합니다.

mDocRef.set(data).addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful()) {
                    /// 保存が成功した時の処理
                } else {
                    /// 保存が失敗した時の処理
                }
            }
        });

값이 변경되었을 때의 처리



기동시와 값이 변경되었을 때에 실행됩니다

mDocRef.addSnapshotListener(new EventListener<DocumentSnapshot>() {
                    @Override
                    public void onEvent(@Nullable DocumentSnapshot snapshot,
                                        @Nullable FirebaseFirestoreException e) {

                        if (snapshot != null && snapshot.exists()) {
                            Log.d("TAG", "Current data: " + snapshot.getData());
                            //変更されたときの処理
                        }
                    }
        });

사이고에게



이상으로 Firestore의 사용법의 소개를 종료합니다.
고마워요.

좋은 웹페이지 즐겨찾기