티스토리 뷰

반응형

 

FirebaseManager 클래스를 만들고 class fuction인 add를 만들어준다 

import Foundation
import Firebase

class FirebaseManager {
    class func add(memo: Memo) {
        let rootRef = Database.database().reference()
        let memosRef = rootRef.child("memos")
        
        let memoRef = memosRef.childByAutoId()
        memoRef.setValue(memo.toDictionary())
    }
}

Memo 구조체에 dictionary로 바꾸는 함수도 추가해준다 

struct Memo {
    let title: String
}

extension Memo {
    func toDictionary() -> [String: Any] {
        return ["title": title]
    }
}

 

그리고 AddMemoViewModel의 save쪽에서 임의로 넣어뒀던 코드인 

print("add \(memo)") 

를 지우고 

FirebaseManager.add(memo: memo)

를 넣어준다 

import Foundation
import RxSwift

struct AddMemoViewModel {
    
    struct State {
        
    }
    
    struct Action {
        let saveMemo = PublishSubject<Memo>()
    }
    
    let state = State()
    let action = Action()
    private let bag = DisposeBag()
    
    init() {
        action.saveMemo.subscribe(onNext: { memo in
            FirebaseManager.add(memo: memo)
        }).disposed(by: bag)
    }
}

 

 

그리고 실행해보자 --! 

이렇게 메모를 추가하면 

 

이렇게 데이터베이스에 잘 저장된다 

 

 

실시간 데이터베이스라서 앱에서 저장하기를 누르면 데이터베이스로 즉각즉각 바로바로 들어오는데

(웹페이지 새로고침안해도!!!!!!) 신기하다 

 

반응형
댓글