파이어스토어 DB

k_hyun·2023년 4월 27일
0

파이어스토어 데이터베이스

파이어베이스는 파이어스토어 데이터베이스와 실시간 데이터베이스를 제공한다.
파이어스토어 DB는 실시간 DB보다 더 많고 빠른 쿼리를 제공한다.
NoSQL DB로, JSON형식으로 파일이 저장된다.

데이터 저장하기

// 파이어스토어 객체 얻기
var db: FirebaseFireStore = FirebaseFirestore.getInstance()

// add() 함수로 데이터 저장
// colleciton() 함수는 괄호 안의 컬렉션을 사용한다는 구문이며, 없으면 새로 만든다.
val user = mapOf(
	"name" to "user",
    "email" to "abc@com.",
    "avg" to 10
    )

// 콜백 함수를 통해 성공/실패 여부를 판단.
db.collection("users")
	.add(user)
    .addOnSuccessListener{}
    .addOnFailureListener{}
    
// map이 아닌 객체 형식으로 저장하려면 아래와 같다.
val user2 = User("name", "abc@com", 10")
db.collection("users")
	.add(user)
    
// set() 함수로 데이터 저장
// DocumentReferece 객체에서 함수를 제공하므로 document()로 작업 대상 문서를 지정해야 한다.
val user3 = User("lee", "abc@com", 10")
db.collection("users")
	.document("ID01")
    .set(user)

데이터 업데이트 / 삭제

// 특정 필드값만 업데이트
db.collection("users")
	.document("ID01")
    .update("email", "lee@com")

// 여러 필드값 업데이트
db.collection("users")
	.document("ID01")
    .update(mapOf(
    	"name" to "kim"
        "email" to "kim@com"
    ))

// 특정 필드값 삭제
db.collection("users")
	.document("ID01")
    .update(mapOf(
    	"avg" to FieldValue.delete()
    ))

// 문서 전체 삭제
db.collection("users")
	.document("ID01")
    .delete()

데이터 불러오기

// 전체 문서 가져오기
db.collection("users")
	.get()
    .addOnSuccessListener{}
    .addOnFailureListener{}
    
// 단일 문서 가져오기
val docRef = db.collection("users").document("ID01")
docRef.get()
	.addOnSuccessListener{}
    .addOnFailureListener{}

// 문서를 객체에 담기
class User{
	var name: String? = null
    var email: String? = null
    var avg: Int = 0
}
val docRef = db.collection("users").document("ID01")
docRef.get().addOnSuccessListener{ documentSnapshot ->
	val selectUser = documentSnapShot.toObject(User::class.java)
}

0개의 댓글