투케이2K

747. (Android/Java) [Firebase RealDatabase] 파이어베이스 데이터베이스 에 Set 데이터 Delete 삭제 수행 본문

Android

747. (Android/Java) [Firebase RealDatabase] 파이어베이스 데이터베이스 에 Set 데이터 Delete 삭제 수행

투케이2K 2024. 3. 19. 20:52

[개발 환경 설정]

개발 툴 : AndroidStudio

 
 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // TODO [SEARCH FAST] : [Observable] : [Delete] : [기본] 데이터베이스 SET 삭제
    // -----------------------------------------------------------------------------------------
    // TODO [호출 방법 소스 코드]
    // -----------------------------------------------------------------------------------------
    /*
    C_FirebaseRealDatabase.observableSetDeleteDatabase(A_Webview.this, "testJson")
            .subscribeOn(AndroidSchedulers.mainThread()) // [Observable (생성자) 로직을 IO 스레드에서 실행 : 백그라운드]
            .observeOn(Schedulers.io()) // [Observer (관찰자) 로직을 메인 스레드에서 실행]
            .subscribe(new Observer<Boolean>() { // [Observable.create 타입 지정]
                @Override
                public void onSubscribe(@NonNull Disposable d) {
                }
                @Override
                public void onNext(@NonNull Boolean value) {
                }
                @Override
                public void onError(@NonNull Throwable e) {
                }
                @Override
                public void onComplete() {
                }
            });
    */
    // -----------------------------------------------------------------------------------------
    public static Observable<Boolean> observableSetDeleteDatabase(Context mContext, String table){

        // [로직 처리 실시]
        return Observable.create(subscriber -> {

            try {
                S_Log._F_(mContext, ACTIVITY_NAME + " : [Firebase] [RealDatabase] 데이터베이스 SET 삭제 수행", new String[]{ "TABLE :: " + String.valueOf(table) });

                // TODO [방어 로직] : 널 체크
                if (C_Util.stringNotNull(table) == true){

                    FirebaseDatabase database = FirebaseDatabase.getInstance(); // [인스턴스 생성]
                    DatabaseReference databaseReference = database.getReference();

                    // [테이블에 데이터 저장]
                    databaseReference.child(String.valueOf(table)).setValue(null)
                            .addOnSuccessListener(new OnSuccessListener<Void>() {
                                @Override
                                public void onSuccess(Void aVoid) {
                                    S_Log._F_(mContext, ACTIVITY_NAME + " : [Firebase] [RealDatabase] [Delete] [onSuccess] - RealDatabase Set Delete", null);

                                    subscriber.onNext(true);
                                    subscriber.onComplete();
                                }
                            })
                            .addOnFailureListener(new OnFailureListener() {
                                @Override
                                public void onFailure(@NonNull Exception e) {
                                    S_Log._F_(mContext, ACTIVITY_NAME + " : [Firebase] [RealDatabase] [Delete] [onFailure] - RealDatabase Set Delete", new String[]{ "ERROR :: " + String.valueOf(e.getMessage()) });

                                    subscriber.onNext(false);
                                    subscriber.onComplete();
                                }
                            });

                }
                else {
                    S_Log._F_(mContext, ACTIVITY_NAME + " : [Firebase] [RealDatabase] [Delete] [Error] - RealDatabase Set Connection", new String[]{ "ERROR :: Input Data Is Null" });

                    subscriber.onNext(false);
                    subscriber.onComplete();

                }

            } catch (final Exception e){
                S_Log._printStackTrace_(mContext, ACTIVITY_NAME + " : [Firebase] [RealDatabase Set] [Delete] [Exception]", null, e);

                // ------------------------------------------------------
                // TODO [리턴 데이터 반환]
                // ------------------------------------------------------
                try {
                    subscriber.onNext(false);
                    subscriber.onComplete();
                }
                catch (Exception ex){
                    ex.printStackTrace();
                }
            }

        });
    }
 

[결과 출력]


반응형
Comments