파이어베이스는 파이어스토어 데이터베이스와 실시간 데이터베이스를 제공한다.
파이어스토어 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)
}