5
createdAt
がに等しいすべてのエントリを取得しようとしていますが、何も返されません。Swift 3.0でFirebaseを照会
私はここで間違っていますか?そして、私がやろうとしている方法でデータを照会する適切な方法は何ですか?
JSON:
{
"thoughts" : {
"-KWGdcdZD8QJSLx6rSy8" : {
"createdAt" : "Tomorrow",
"thought" : "meno",
"user" : "ET9tYfHqThNTsLG4bZGIbuLGauu2"
},
"-KWGeGivZl0dH7Ca4kN3" : {
"createdAt" : "Today",
"thought" : "meno",
"user" : "ET9tYfHqThNTsLG4bZGIbuLGauu2"
},
"-KWGeIvWHBga0VQazmEH" : {
"createdAt" : "Yesterday",
"thought" : "meno",
"user" : "ET9tYfHqThNTsLG4bZGIbuLGauu2"
}
}
}
スウィフト:
let db = FIRDatabase.database().reference().child("thoughts")
let ref = db.queryEqual(toValue: "Today", childKey: "createdAt")
ref.observe(.value, with:{ (snapshot: FIRDataSnapshot) in
for snap in snapshot.children {
print((snap as! FIRDataSnapshot).key)
}
})
を使用するよりも
queryOrderedByChild
を使用する必要があります。 'let ref = db.queryOrdered(byChild:" createdAt ")。queryEqual(toValu e: "Today") ' –@ColbyGatte私はrefrence行を編集しました。もう一度試してください。 –
こんにちは@ EICaptainv2.0、私はあなたの答えを実装しましたが、私はすべての子ノードを取得しています。私は.valueの代わりに.childAddedを使用していますが、私はすべての子の値を取得するだけでなく、クエリにマッチします(私はIntタイムスタンプで注文し、queryStarting(at :)を使用しています。あなたは流すことができます。 – Septronic