現在、Swiftの子スナップショットからデータにアクセスしようとしています。Swift Firebase子スナップショットデータへのアクセス
if let achievements = snapshot1.childSnapshotForPath("Achievements").children.allObjects as? [FIRDataSnapshot] {
if achievements.count != 0 {
if let val = achievements[0].value!["somevalue"] as? Int {
self.dict["somevalue"] = val
}
}
だから私はここでやろうとしています、子スナップショット(実績)の変数を作成することで、アクセス:ここで(スウィフト3/Firebase更新前に働いていた)私は私のコードです子スナップショットデータを取得します。達成[0]は最初の値を返すだけです。しかし、これは動作していないようです。私はこれにどのようにアプローチすべきですか?
私は現在、すでに( 'observeType:.ChildAdded' は)スナップショット内でこれをやっている
マイFirebase DBは次のようになります。
Achievements{
randomId1 {
somevalue : somevalue
}
randomId2 {
somevalue2 : somevalue2
}
}
更新コード:
func loadData() {
ref.child("Players").observe(FIRDataEventType.childAdded) { (snapshot:FIRDataSnapshot) in
if let value = snapshot.value as? [String:AnyObject], let username = value["Username"] as? String {
}
if let value = snapshot.value as? [String:AnyObject], let ranking = value["Rank"] as? String {
}
if let childSnapshot = snapshot.childSnapshot(forPath: "Achievements").children.allObjects as? [FIRDataSnapshot] {
if childSnapshot.count != 0 {
if let achievement1 = childSnapshot[0].value!["Rookie"] as? String {
print(achievement1)
}
}
}
}
}
JSONツリー:
Players {
PlayerID {
Username
Rank
Achievements {
Rookie: yes
}
}
あなたのすべての機能を発揮してください。実際のJSONツリーは、あなたが与えたものから解読するのが難しいです。 – Dravidian
私は完全なコードとJSONツリーを提供しました。私は実際にchildsnapshotデータを取得する方法を見つけることができないようですが、上記のコードはエラーを返します。私は[String:AnyObject]として定義しようとしましたが、これはnilになります。 – askaale
そして、明らかに、私は単に「ルーキー」の価値から「はい」を返すだけです。 – askaale