iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

Kotlin で Firestore から取得したデータを DocumentID 付きのモデルにマッピングする

今日は、タイトルの通り Firestore から取得したデータ(SnapShot)を DocumentID 付きのカスタムクラスに変換する方法を紹介します🧑‍🔧

それではやっていく

まずは、データをマップするクラスを作成します。以前の記事でも紹介したように、マップするクラスはデフォルトコンストラクタが必要です。

yamato8010.hatenablog.com

data class CountryItemEntity(@DocumentId val documentId: String = "", val name: String = "", val description: String = "")

そして、肝心なのが @DocumentId アノテーションです。これをプロパティに付与することで、DocumentID が自動的に入力されるようになります✨ 詳細については、下記のドキュメントを参照してください。

firebase.google.com

最後に、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)
            }

参考

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com