実現したいこと
単純にRealtimeDatabaseを使用してusers/$uid
という場所にUserというクラスを保存したいです。
問題
公式のドキュメント通りにgetReferenceで保存場所を指定して
setValueで値をセットさせて保存させようとしたのですが、
なぜか保存されないだけではなく、まず実行されているのかどうかも怪しく
エラーメッセージすら表示されないという状態です。
ファイル場所を指定する.getReference("users/$uid")
ですが、users/$uidというフォルダは存在せず保存する際に同時に作成してもをうようにしたいと考えています。(usersフォルダも。あと、usersはルート直下です。)
エラー表示もないため自分では手も足も出ない状態です。
解決策をご存じの方がいらっしゃいましたら是非ご教授ください。
コード
kotlin:mainActivity.kt
1private fun saveUserToFirebaseDatabase(profileImageUri: String) { 2 val uid = FirebaseAuth.getInstance().uid ?: "" 3 val ref = FirebaseDatabase.getInstance().getReference("users/$uid") 4 val username = username_edittext_register.text.toString() 5 6 val user = User(uid, username, profileImageUri) 7 8 Log.d("value", "save start") 9 10 val result = ref.setValue(user).addOnSuccessListener { 11 Log.d("value", "Finally we saved the user to Firebase Database") 12 val intent = Intent(this, LatestMessagesActivity::class.java) 13 intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK.or(Intent.FLAG_ACTIVITY_CLEAR_TASK) 14 startActivity(intent) 15 }.addOnFailureListener { 16 Log.d("value", "save is not Success") 17 }.addOnCompleteListener { 18 Log.d("value", "save is Complete") 19 }.addOnCanceledListener { 20 Log.d("value", "save is Canceled") 21 } 22 23 // エラーがあるかどうか(使い方あってるか不明...) 24 Log.d("value", "save is: ${result.exception?.printStackTrace()}") 25 26 Log.d("value", "save end") 27} 28
kotlin:User.kt
1@Parcelize 2@IgnoreExtraProperties 3data class User(val uid: String, val username: String, val profileImageUri: String): Parcelable { 4 constructor(): this( "", "", "") 5}
- gradle
dependencies { ........ // firebase implementation platform('com.google.firebase:firebase-bom:28.2.1') implementation 'com.google.firebase:firebase-analytics-ktx' // realtime database implementation platform('com.google.firebase:firebase-bom:28.2.0') implementation 'com.google.firebase:firebase-database-ktx' implementation 'com.google.firebase:firebase-database-ktx:20.0.0' }
- Logcat
2021-07-23 14:45:29.857 12301-12301/com.example.realtimedatabasetest D/value: save start 2021-07-23 14:45:29.857 12301-12301/com.example.realtimedatabasetest D/value: save end 2021-07-23 14:45:29.876 12301-12301/com.example.realtimedatabasetest I/ViewRootImpl: jank_removeInvalidNode all the node in jank list is out of time 2
回答1件
あなたの回答
tips
プレビュー