Firestore 사용법

Judy·2021년 6월 2일
0

Firestore에 데이터 저장

알고보니 파이어베이스엔 두가지 방식의 저장소가 존재했다.

# 실시간 데이터베이스

: Firebase의 기존 데이터베이스로, 여러 클라이언트에서 실시간으로 상태를 동기화해야 하는 모바일 앱을 위한 효율적이고 지연 시간이 짧은 솔루션입니다.

  • 실시간
  • 오프라인
  • 클라이언트 기기에서 액세스 가능
  • 여러 데이터베이스에서 규모 조정


# Cloud Firestore

: 모바일 앱 개발을 위한 Firebase의 최신 데이터베이스로서 실시간 데이터베이스의 성공을 바탕으로 더욱 직관적인 새로운 데이터 모델을 선보입니다. 또한 실시간 데이터베이스보다 풍부하고 빠른 쿼리와 원활한 확장성을 제공합니다.

  • 유연성
  • 표현형 쿼리
  • 실시간 업데이트
  • 오프라인 지원
  • 확장형 설계

내가 만들 앱은 간단하기 때문에 어떤 저장소를 사용해도 괜찮을 것 같았지만 Firestore가 실시간 데이터베이스의 상위호환 같고, 알고보니 안드로이드 앱 제작 시 이용했던 것도 Firestore여서 이걸로 당첨!

데이터 구조

컬렉션 - 문서 - 필드

필드에는 다음과 같은 형식이 가능하다.

  • String
  • Number
  • Boolean
  • Map
  • Array
  • Null
  • Timestamp
  • Geopotint
  • Reference

데이터를 쓰고 읽어오는 간단한 예제는 Firebase 공식문서에 잘 나와있다 😁

[ 데이터 쓰기 ]

  1. 콜렉션을 지정해서 문서에 자동으로 id를 부여해 데이터 추가
// Add a new document with a generated ID
var ref: DocumentReference? = nil
ref = db.collection("콜렉션이름").addDocument(data: 
	"first": "Ada",
	"last": "Lovelace",
	"born": 1810
]) { err in
	if let err = err {
		print("Error adding document: \(err)")
	} else {
		print("Document added with ID: \(ref!.documentID)")
	}
}
  1. 콜렉션과 문서 이름(id)를 지정해서 데이터 추가
// Add a new document in collection "users"
db.collection("users").document("LA").setData([
        "name": "Los Angeles",
        "state": "CA",
        "country": "USA"
]) { err in
        if let err = err {
                print("Error writing document: \(err)")
        } else {
                print("Document successfully written!")
        }
}

2.1 dictionary 형식으로 필드를 한꺼번에 추가

let docData: [String: Any] = [
	"name": "콤마",
	"position": 3.14159265,
	"date": Timestamp(date: Date()),
	"visit": true,
	"tag": ["첫방문", "초코빵 맛집", "자몽주스노맛"]
]

db.collection("users").document("test").setData(docData) { err in
	if let err = err {
		print("Error writing document: \(err)")
	} else {
		print("Document successfully written!")
	}
}

#소감#

안드로이드할 때 사용했어서인지 아직 익숙하다..!

다음목표

데이터 읽어와서 테이블뷰에 띄우기

profile
iOS Developer

0개의 댓글