やりたいこと
ノードa-b-cのb-1に属するcを取ってきて、ノードcから値を取ってきたい
具体的には、bー1に属するc-1, c-3を取って、ノードcからcー1, c-3の値を取ってくる
やったこと
Swift
1// ノードcから値を取ってくる 2let REF_C = Database.database().reference().child("c") 3func queryCfromABC(a: String, b: String, text: String, completion: @escaping (Class) -> Void) { 4 referenceABC(a: a, b: b) { (c) in 5 self.REF_C.child(c).queryOrdered(byChild: "name").queryStarting(atValue: text).queryEnding(atValue: text+"\u{f8ff}").observeSingleEvent(of: .value, with: { (DataSnapshot) in 6 DataSnapshot.children.forEach({ (child) in 7 let child = child as! DataSnapshot 8 if let dict = child.value as? [String: Any] { 9 let newC = Class.transformClass(dict: dict, key: child.key) 10 completion(newC) 11 } 12 }) 13 }) 14 } 15} 16// ノードabcからaとbを指定して、b-1に属するcを取ってくる 17let REF_ABC = Database.database().reference().child("a-b-c") 18func referenceABC(a: String, b: String, completion: @escaping (String) -> Void) { 19 REF_ABC.child(a).child(b).observeSingleEvent(of: .value, with: { (DataSnapshot) in 20 DataSnapshot.children.forEach({ (c) in 21 let child = c as! DataSnapshot 22 completion(child.key) 23 }) 24 }) 25}
問題点
ノードに参照してqueryOrderedはできるが、
ノードに参照して、取ってきた値を指定して、queryOrderedができない。
Swift
1// これはできる 2let REF_C = Database.database().reference().child("c") 3self.REF_C.queryOrdered(byChild: "name")
Swift
1// これができない 2let REF_C = Database.database().reference().child("c") 3self.REF_C.child(c).queryOrdered(byChild: "name")
どうすればよいでしょうか?
すみませんが、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー