【Swift】Firebaseから取得するデータを調べてみた

 

 

保存してあるデータ

 

f:id:nekokichi_yos2:20190204113353p:plain

 

解説

 

Firebaseからデータを取得する時、

  • どのような型(クラス)で取得されるのか?
  • どんなメソッドがあるのか?

という疑問が湧かないだろうか?

 

udemyで初めてFirebaseを知り、自分で試してみて、挫折しかけた。

 

クエリはもちろん、海藻や階層のURLの扱い方すらちんぷんかんぷんだった。

 

中でも、取得するデータの扱いには一苦労。

 

なんとなーく使ってるあなたや僕のためにも、今回はFirebaseから取得するデータを調べてみた。

 

デバック結果

 

「snap」

f:id:nekokichi_yos2:20190204114525p:plain

f:id:nekokichi_yos2:20190204114541p:plain

f:id:nekokichi_yos2:20190204114600p:plain

f:id:nekokichi_yos2:20190204114611p:plain

 

 

「snap.children」

 9

 

「snap.exists」
true

 

「snap.hasChildren」
true


「snapdata」

f:id:nekokichi_yos2:20190204114636p:plain

 


「item」
[["State": "ボロボロ", "UserID": "userID", "Date": "2019/02/01 12:17:54", "Title": "gfdsf", "DeliveryBurden": "着払い(受取人)", "Good": "0", "DeliveryDay": "5~6日", "UserName": "userName", "ItemID": "BfdQbs7ry", "DeliveryWay": "普通郵便", "Status": "display", "Category": "スポーツ"], ["?": "?"], ["?": "?"], ["?": "?"], ["?": "?"]]

 

ソースコード

 

func downloadImageData() {
        //FIrebaseのデータベースの参照URL
        let ref = Database.database().reference(fromURL: "https://bookshare-b78b4.firebaseio.com/")
        ref.child("Item").observe(.value) { (snap) in
            //階層下のデータを全部表示
            print(snap)
            //階層下のデータのメモリ情報?
            print(snap.children)
            //階層下のデータ数
            print(snap.childrenCount)
            //階層は存在する?
            print(snap.exists())
            //階層下にデータはある?
            print(snap.hasChildren())
            for item in snap.children {
                let snapdata = item as! DataSnapshot
                //1つのデータ
                print(snapdata)
                let item = snapdata.value as! [[String:String]]
                //snapdataを辞書型に変換
                print(item)
            }
        }
    }