Open1
Firestoreで簡単にデータベースを作る
Firebaseの導入
以下記事が参考になると思います!
firestore設定
Firebaseが使えるようになった。。。体で話を進めます。
Firebaseのホーム画面にある作成済みのプロジェクトを選択。
プロジェクトがない場合は、新規作成する。
よくわからなければ、手前のFirebaseの導入を見る!

左のサイドバーにあるメニューから構築>Firestore Databaseを選択

データベースの作成をクリック

ロケーションはTokyoかOsakaを選択(どこでもいいのかも)

開発中は「テストモード」にしておきます
(30日でステータスを変更する必要があるので注意!)

こんな感じの画面がでたらデータベースの作成完了です!

アプリ側からデータを追加していきます!
依存関係追加
いつもの依存家計を追加していきます。
Firebase導入時に、Firebase系の依存関係はすでに追加してある前提となっています。
libs.versions.toml
[libraries]
firebase-firestore-ktx = { module = "com.google.firebase:firebase-firestore-ktx" }
build.gradle.kts(Module:app)
dependencies {
//firestore(firebaseの中で使っていく)
implementation(libs.firebase.firestore.ktx)
→SyncNow!!!
Firestoreにデータを追加
ViewModelにデータを保存する関数を作成します。
fun saveRecruit(
onSuccess: () -> Unit,
onError: (String) -> Unit
) {
//FirebaseのFirestoreに保存する
val recruitData = hashMapOf(
"appName" to uiState.value.appName,
"appIcon" to uiState.value.appIcon.toString(), //Uriを文字列に変換
"status" to uiState.value.status.fireStoreLabel, //募集中・募集終了とか
"description" to uiState.value.description,
"groupUrl" to uiState.value.groupUrl,
"appUrl" to uiState.value.appUrl,
"webUrl" to uiState.value.webUrl,
"postedAt" to System.currentTimeMillis()
)
Log.d("ruruV","Firestoreに保存します:$recruitData")
Firebase.firestore.collection("recruit")
.add(recruitData)
.addOnSuccessListener {
Log.d("ruruV","成功!")
_isSaved.value = true
onSuccess()
}
.addOnFailureListener {
Log.d("ruruV","失敗。。。")
_isSaved.value = false
onError(it.message ?: "保存できませんでした。。。")
}
}
■UIから上記関数を呼び出す場合(あくまでも一例です)
//テスター募集新規登録
composable(Screen.RecruitNew.route) {
val viewModel: RecruitNewViewModel = hiltViewModel()
val uiState: RecruitUiState by viewModel.uiState.collectAsState()
val isSaved by viewModel.isSaved
RecruitNewScreen(
//他の呼び出し
onSaveClick = {
Log.d("ruruS","保存ボタンが押されました")
viewModel.saveRecruit(
onSuccess = {
navController.navigate(Screen.RecruitList.route)
},
onError = { message ->
Toast.makeText(context, message, Toast.LENGTH_SHORT).show()
}
)
},
)
}
データが登録されると
以下のようにFirestoreにデータがたまっていきます。

自分でデータベースを構築しなくていいなんて、もう夢のようなサービス!!!!!
Googleってすごいなぁ