Firebase構造検索
こんにちは、私は私のFirebaseデータベース(構造付属)でjobBrand & jobNameはを照会してのtableViewに保存する方法をうまくしようとしています。私は各ジョブブランドの下にもっと多くの情報を保存するつもりですので、可能であればこの方法で構造を維持したいと考えていますか?
はこれまでのところ、私は彼らが1つのレベルアップしている場合のtableViewは、2つのフィールドを読むために得ることができるので、構造は次のようになります。tbaShootApp - >ジョブ - >ジョブブランド>データを。
私は他のレベルをクエリダウンしてtableViewに格納することはできません。これは可能ですか?私は、ジョブ情報を格納するための辞書を使用しています
:
class Job: NSObject {
var id: String?
var jobBrand: String?
var jobName : String?
var director : String?
var jobInfo : jobInfo?
init(dictionary: [String: AnyObject]) {
self.id = dictionary["id"] as? String
self.jobBrand = dictionary["jobBrand"] as? String
self.jobName = dictionary["jobName"] as? String
self.director = dictionary["Director"] as? String
}
}
をここでは、データを照会するためのコードである - 私は私のsuperViewDidLoadで関数「fetchJobs」を持っています。
func fetchJobs() {
Database.database().reference().child("Jobs").observe(.childAdded) { (snapshot) in
if let dictionary = snapshot.value as? [String: AnyObject] {
let job = Job(dictionary: dictionary)
job.id = snapshot.key
self.jobs.append(job)
//this will crash because of background thread, use dispatch_async to fix
DispatchQueue.main.async(execute: {
self.tableView.reloadData()
})
}
}
}
JSON
{
"Jobs" : {
"Candycrush" : {
"cameraInfo" : {
"cameraBody" : "A",
"cameraBrand" : "Arri",
"cameraType" : "Alexa"
},
"jobInfo" : {
"jobBrand" : "CandyCrush",
"jobName" : "Winter"
}
},
"Honda" : {
"cameraInfo" : {
"cameraBody" : "A",
"cameraBrand" : "Arri",
"cameraType" : "Alexa XT"
},
"jobBrand" : "Honda",
"jobName" : "Comet"
},
"WWF" : {
"cameraInfo" : {
"cameraBody" : "A",
"cameraBrand" : "Red",
"cameraType" : "Epic"
},
"jobInfo" : {
"jobBrand" : "WWF",
"jobName" : "Eye"
}
}
}
}
私は正しい子を見下すように私の辞書の設定を変更する必要があると思うが、それは合計推測ですか?それが正しい場合は、私はそれが何であるべきかわからない? – spoax
下位レベルを読むには: 'Database.database()。reference()。child(" Jobs/Job Brand ")。observe(.childAdded)' –
ありがとうございましたFrank van Puffelenですが、 "Job Brand"ユーザーと作成された各「職場ブランド」の名前が異なります。だから私は毎回何が呼ばれているのか分からない。そのレベルをバイパスする方法や、存在するすべての "jobInfo"フォルダだけを探す方法はありますか? – spoax