Firebase를 사용한 데이터 획득
예를 들어 다음과 같은 데이터의 구조를 가정한다.
이 경우 Group 아래에 있는 체크 아웃은 간단합니다.
sample.swift
//この「ref」でこのツリー全体のrootを示す。
ref = Database.database().reference()
//refの下に「child()」で場所を示す。今回の場合は「Group」
ref.child("Gruop").observe(.value, with: { (snapshot) in
中略・・・
내가 이번에 얻은 것은 그룹 아래의 나무 밑에 매달려 있는 상황이다.sample.swift
ref = Database.database().reference()
//refの下に「child()」で場所を示す。今回の場合は「Group」
ref.child("Gruop").observe(.value, with: { (snapshot) in
for itemSnapShot in snapshot.children {
//ここで取得したデータを自分で定義したデータ型に入れて、加工する
let item = GroupData(snapshot: itemSnapShot as! DataSnapshot)
・・・中略
}
}
그리고 자신이 정의한 데이터 형식은 이것입니다.let dict에 Firebase로 얻은 데이터를 넣고 원하는 항목에 따라 데이터를 가공합니다.
GroupData.swift
class GroupData {
var ref: DatabaseReference?
var groupid: String?
var name: String?
var founder: String?
var memberofnumber: Int?
var payment: Int?
var period: String?
var message: String?
var publicnum: Int?
var groupprofile: String?
var users : Array? = []
init? (snapshot: DataSnapshot) {
ref = snapshot.ref
guard let dict = snapshot.value as? [String:Any] else { return nil }
guard let groupid = ref?.key else { return nil }
guard let name = dict["name"] as? String else { return nil }
guard let founder = dict["founder"] as? String else { return nil }
guard let memberofnumber = dict["memberofnumber"] as? Int else { return nil }
guard let payment = dict["payment"] as? Int else { return nil }
guard let period = dict["period"] as? String else { return nil }
guard let message = dict["message"] as? String else { return nil }
guard let publicnum = dict["publicnum"] as? Int else { return nil }
guard let groupprofile = dict["groupprofile"] as? String else { return nil }
guard let users = dict["users"] as? [String:AnyObject] else { return nil }
var newusers : Array? = []
for i in users.keys {
newusers?.append(i)
}
self.name = name
self.groupid = groupid
self.founder = founder
self.memberofnumber = memberofnumber
self.payment = payment
self.period = period
self.message = message
self.publicnum = publicnum
self.groupprofile = groupprofile
self.users = newusers
}
}
"users(나무에 걸린 블록)"를 배열로 얻고 싶어서 배열로 얻으면 순조롭게 진행되지 않습니다[string:AnyObject]에서 데이터의 유형을 발표함으로써 키스를 통해 하나의 키를 얻을 수 있고 나머지는 배열에 넣으면 끝납니다.
말로 설명하려면 잘 전달이 안 돼...
Reference
이 문제에 관하여(Firebase를 사용한 데이터 획득), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/goombeer/items/b0fe968c07c9b17530cd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)