firebase 에 저장가능한 class

Hyun·2023년 11월 25일
0

코틀린

목록 보기
2/3

결과부터 말하면, Firestore는 companion object 의 필드가 아니라, 일반 필드만 저장할 수 있다. 또한 선택적으로 Firestore에 저장할 필드를 선택할 수도 있다.

@Transient 어노테이션이 붙은 필드를 무시한다. 그리고 Kotlin의 companion object의 필드는 일반적으로 Firestore에 저장되지 않는다. 이는 Firebase Firestore 가 클래스의 "일반" 필드만 저장하며, 그 외에는 무시하기 때문이다. 따라서 companion object 내부의 필드가 Firestore에 저장되도록 하려면 해당 필드를 클래스의 일반적인 멤버 변수로 옮겨야 한다.

Firebase Firestore는 기본적으로 클래스의 멤버 변수 중에서 transient 키워드
@Transient 어노테이션이 붙은 필드를 무시한다. 만약 특정 필드가 Firestore에 저장되지 않도록 하려면 해당 필드를 transient 키워드나 @Transient 어노테이션으로 표시하면 된다.

아래는 Kotlin의 데이터 클래스에서 transient 키워드를 사용하는 예시이다.

MyClass.kt

data class MyClass(
    val normalField: String,
    @Transient val ignoredField: String
)

이 경우에는 ignoredField는 Firestore에 저장되지 않는다.

profile
better than yesterday

0개의 댓글