Kotlin で Firestore から取得したデータを DocumentID 付きのモデルにマッピングする
今日は、タイトルの通り Firestore から取得したデータ(SnapShot)を DocumentID
付きのカスタムクラスに変換する方法を紹介します🧑🔧
それではやっていく
まずは、データをマップするクラスを作成します。以前の記事でも紹介したように、マップするクラスはデフォルトコンストラクタが必要です。
data class CountryItemEntity(@DocumentId val documentId: String = "", val name: String = "", val description: String = "")
そして、肝心なのが @DocumentId
アノテーションです。これをプロパティに付与することで、DocumentID が自動的に入力されるようになります✨
詳細については、下記のドキュメントを参照してください。
最後に、toObjects
でマッピングすれば完了です🎉
FirebaseFirestore.getInstance() .collection("countries") .get() .addOnSuccessListener { it.documents.first() val countries = it.toObjects(CountryItemEntity::class.java) countries.first().documentId } .addOnFailureListener { Log.w("Hoge", "Error getting documents.", it) }
参考
- https://firebase.google.com/docs/reference/kotlin/com/google/firebase/firestore/DocumentId
- https://firebase.google.com/docs/reference/kotlin/com/google/firebase/firestore/DocumentId