質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

1005閲覧

不可解なOptional error

swifterror

総合スコア0

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/07/10 10:51

編集2020/07/10 11:23

前提・実現したいこと

初めまして、現在firebase firestoreを用いてアプリケーションを作成しているのですが、

let b = i.document.get(“b”) as! String

の部分で、下記のエラーメッセージが出てしまいます。オプショナルバインディングなのになぜこのようなerrorが出てしまうのでしょうか?

発生している問題・エラーメッセージ

Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value

該当のソースコード

swift

1class getdata : ObservableObject { 2 3 @Published var datas = [datatype]() 4 5 init() { 6 7 let db = Firestore.firestore() 8 9 db.collection(“data").addSnapshotListener { (snap, err) in 10 11 if err != nil { 12 13 print((err?.localizedDescription)!) 14 return 15 } 16 17 for i in snap!.documentChanges{ 18 19 if i.type == .added { 20 21 print("add success") 22 23 let a = i.document.documentID 24 let b = i.document.get(“b”) as! String 25 let c = i.document.get(“c”) as! String 26 let d = i.document.get(“d”) as! String 27 let e = i.document.get(“e”) as! String 28 let f = i.document.get(“f”) as! String 29 let g = i.document.get(“g”) as! String 30 let h = i.document.get(“h”) as! String 31 32 DispatchQueue.main.async { 33 34 self.datas.append(datatype(a: a, b: b, c: c, d: d, e: e, f: f, g: g, h: h)) 35 } 36 } 37 } 38 } 39struct datatype : Identifiable { 40 41 var a : String 42 var b : String 43 var c : String 44 var d : String 45 var e : String 46 var f : String 47 var g : String 48 var h: String 49}

補足情報(FW/ツールのバージョンなど)

Xcode 11.5
mac OS Big Sur

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

!じゃなくて?です。
!だとnilになった時点で落ちます。

投稿2020/07/11 04:04

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問