前提・実現したいこと
Firebaseに保存されている配列の要素を取り出してアプリ内の配列に保存したいです。
発生している問題・エラーメッセージ
Firebase内の値を参照し、アプリ内のUILabelに表示することはできるのですが、その値をアプリ内の配列に追加しようとするとうまくいきません。
Thread 1: Fatal error: Index out of range
該当のソースコード
Firebaseの"Keys"の中には配列が入っています。
[上手くいく]
その4番目の値(キー[3])をString型で取り出し、「self.label.text = getKey」でラベルに表示しています。ここまでは上手くいき、ラベルにも4番目の値が表示されます。
[出来ない]
getKeyにString型の値が入っていることを上記から確認し、それを「keysArray:[String]」に追加しました。その後、「self.label.text = keysArray[0]」とコードを追記し「keysArray」内の値を表示しようとすると、「Thread 1: Fatal error: Index out of range」のエラーが出てしまいます。
ref.child("Keys").child("3").observeSingleEvent(of: .value) { (DataSnapshot) in let getKey = DataSnapshot.value as! String self.label.text = getKey self.keysArray.append(getKey) }
試したこと
Firebaseからの値はきちんと取り出されているはずなのですが、アプリ内の配列に追加しようとするとなぜか上手くいきません。
原因の可能性
・配列の宣言の仕方「var keysArray:[String] = []」がおかしい
・Firebaseの仕様で、取ってきた値を配列に追加することが出来ない
色々試してみたのですが、labelに表示できるのに配列に追加できない点で頭がパンクしてしまいこれ以上考えることが出来ません。swift、Firebaseに詳しい方、解決策を教えていただけたらと思います。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。