Android/공부

[android] Cloud Firebase 데이터 쓰기 및 읽기

꾸끄꾸꾸 2020. 10. 27. 11:24

1.  build.gradle (project) 에 google-service 플러그인 추가하기

buildscript {

  repositories {
    // Check that you have the following line (if not, add it):
    google()  // Google's Maven repository
  }

  dependencies {
    // ...

    // Add the following line:
    classpath 'com.google.gms:google-services:4.2.0'  // Google Services plugin
  }
}

allprojects {
  // ...

  repositories {
    // Check that you have the following line (if not, add it):
    google()  // Google's Maven repository
    // ...
  }
}

 

2. build.gradle (Module:app) 에 firebase 라이브러리 추가하기

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

 

 

3. 데이터 쓰기

FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collection("파일경로").document("파일소경로")
                            .set("저장할데이터")
                            .addOnSuccessListener(new OnSuccessListener<Void>() {
                                @Override
                                public void onSuccess(Void aVoid) {
                                    Log.d(TAG, "DocumentSnapshot successfully written!");
                                    //데이터 쓰기 성공시 이벤트
                                    
                                }
                            })
                            .addOnFailureListener(new OnFailureListener() {
                                @Override
                                public void onFailure(@NonNull Exception e) {
                                    Log.w(TAG, "Error writing document", e);
                                }
                            });

 

 

4. 데이터 읽기

FirebaseFirestore db = FirebaseFirestore.getInstance();
        db.collection("파일경로")
                .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());
                                //dataList는 사용하기 전에 초기화 한번 해주기
                                dataList.add(new ScrapNewsData(
                                        document.getData().get("fileData").toString(),
                                        document.getData().get("fileData2").toString()));
                            }
                        }
                        else {
                            Log.w(TAG, "Error => ", task.getException());
                        }
                    }
                });