【Swift】Firebaseから取得するデータを調べてみた
保存してあるデータ
解説
Firebaseからデータを取得する時、
- どのような型(クラス)で取得されるのか?
- どんなメソッドがあるのか?
という疑問が湧かないだろうか?
udemyで初めてFirebaseを知り、自分で試してみて、挫折しかけた。
クエリはもちろん、海藻や階層のURLの扱い方すらちんぷんかんぷんだった。
中でも、取得するデータの扱いには一苦労。
なんとなーく使ってるあなたや僕のためにも、今回はFirebaseから取得するデータを調べてみた。
デバック結果
「snap」
「snap.children」
9
「snap.exists」
true
「snap.hasChildren」
true
「snapdata」
「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) } } }