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

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

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

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Swift

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

0回答

692閲覧

Firebase Realtime Database から配列のvalueを取得するには

rainyeveryday

総合スコア22

Firebase

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Swift

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/05/05 08:54

次のJSONツリーの配列の値を取得したいです(写真のfuda1L等)。私はsnapshotを引数にとってUserInfoClassという名のClassでその配列を[String]で取得しようとしましたが、オプショナルnilが出てきてしまいました。解決法をご教示頂きたいです。

JSONツリー

Swift

1 func retriveData(){ 2 3 refUserInfo = Database.database().reference().child("users") 4 refUserInfo.observe(.value) { (snapshot) in 5 let info = UserInfoClass.init(snapshot: snapshot) 6 //userInfo is [UserInfoClass] 7 self.userInfo.append(info!) 8 self.InfoTableView.reloadData() 9 10 } 11 }

以下が 'UserInfoClass'です。

init? (snapshot: DataSnapshot) { guard let applyDict = snapshot.childSnapshot(forPath: "ApplyInfo").value as? [String: Any] else {return nil } guard let peopleNum = applyDict["peopleNum"] as? Int else { return nil } print("peopleNum: (peopleNum)\n") guard let payType = applyDict["payType"] as? [String] else { return nil } print("payType:(payType)\n") guard let receiveType = applyDict["receiveType"] as? [String] else { return nil } print("receiveType: (receiveType)\n") guard let furigana2 = applyDict["furigana2"] as? [String] else { return nil } print("furigana2: (furigana2)") guard let prayman2 = applyDict["prayman2"] as? [String] else { return nil } print("prayman2: (prayman2)\n") guard let furigana1 = applyDict["furigana1"] as? [String] else { return nil } print("furigana1:(furigana1)\n") guard let prayman1 = applyDict["prayman1"] as? [String] else { return nil } print("prayman1:(prayman1)\n") guard let prayType2 = applyDict["prayType2"] as? [String] else { return nil } print("prayType2:(prayType2)\n") guard let prayType1 = applyDict["prayType1"] as? [String] else { return nil } print("prayType1:(prayType1)") guard let moneySum = applyDict["moneySum"] as? [Int] else { return nil } print("moneySum:(moneySum)\n") guard let fuda1Small = applyDict["fuda1S"] as? [String] else {return nil} guard let fuda1Mid = applyDict["fuda1M"] as? [String] else {return nil} guard let fuda1Large = applyDict["fuda1L"] as? [String] else {return nil} guard let fuda3Small = applyDict["fuda3S"] as? [String] else {return nil} guard let fuda3Mid = applyDict["fuda3M"] as? [String] else {return nil} guard let fuda3Large = applyDict["fuda3L"] as? [String] else {return nil} guard let fuda5Small = applyDict["fuda5S"] as? [String] else {return nil} guard let fuda5Mid = applyDict["fuda5M"] as? [String] else {return nil} guard let fuda5Large = applyDict["fuda5L"] as? [String] else {return nil}

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問