Firestoreのデータ取得するコードでエラーがおきました。
Firestoreのデータ取得するコードでエラーがおきました。 Kotlinです。原因はtoString()だと思うのですが、どうしたらいいですか? java.lang.NullPointerException val docRef = db.collection("users").document(uid) docRef.get() .addOnSuccessListener { document -> if (document != null) { binding.tvname.text = document.data!!["name"].toString() binding.tvage.text = document.data!!["age"].toString() binding.tvprof.text = document.data!!["profile"].toString() } else { Log.d(TAG, "No such document") } } .addOnFailureListener { exception -> Log.d(TAG, "get failed with ", exception) }
Android開発・67閲覧
ベストアンサー
エラー原因がわからないと対処方法を検討できません エラーログを張りましょう Exceptionの種類だけでは 解析不可能です。メッセージ、スタックトレースも重要です。 仮に toStringで落ちているなら 可能性は document.data!!["xxx"] がnullを返しているケースです。 保存処理で、カラムが抜けているケースがあるんですか? ないのなら、バグの本質は保存処理側です。 あるなら、 nullのときどうしたいのでしょうか? ・「ない」って文を表示 ・TextViewそのものを非表示 ・エラー画面へ遷移 ・トースト、ダイアログで喚起 いろいろ考えられますが、、 とりあえず 一番簡単な「ない」って文を表示させるなら binding.tvname.text = document.data!!["name"]?.toString() ?: "ない"
エラー原因は 「java.lang.NullPointerException」 です。(エミュレーター内のアプリが落ちて表示されたので、エラーと言わないのかもしれないです。) そのエラー場所は、 binding.tvname.text = document.data!!["name"].toString() です。 Nullの場合はログを表示させるだけです。
質問者からのお礼コメント
ありがとうございます!
お礼日時:1/26 9:43