Geofireを使用して、特定のエリアでcircleQueryを実行しています。オブザーバーを設定すると、場所が返されますが、その場所では「指定されていないインデックスを使用しています。「。indexOn」を追加することを検討してください:「g」」
私のgeofireのdbは、karmadots/geofire/{events}のようになります
"rules": {
"karmadots": {
".read": true,
".write": true,
"geofire": {
"$events": {
".indexOn": ["g"]
}
}
}
私も試しました:
"rules": {
"karmadots": {
".read": true,
".write": true,
"geofire": {
".indexOn": ["g"]
}
}
}
どちらもメッセージを消し去りません。読んだり、例として試すことができる何か他のものはありますか?
助けてくれてありがとう。
編集:
私のパスはxxxxx.firebaseio.com/karmadots/geofire/{keys}です
これは私がクエリする方法です:
func setupListeners(query: GFQuery){
// Event is in initial area or entered area
query.observeEventType(GFEventTypeKeyEntered, withBlock: { (key: String!, location: CLLocation!) in
println("Key '\(key)' entered the search area and is at location '\(location)'\n")
})
// Event left area
query.observeEventType(GFEventTypeKeyExited, withBlock: { (key: String!, location: CLLocation!) in
println("Key '\(key)' left the search area\n")
})
// Event moved but is still in area
query.observeEventType(GFEventTypeKeyMoved, withBlock: { (key: String!, location: CLLocation!) in
println("Key '\(key)' moved in the search area and is at location '\(location)'\n")
})
}
["g"]の周りのブラケットを取り外すと、問題が修正されます。最後のコードは次のとおりです。
"rules": {
"karmadots": {
".read": true,
".write": true,
"geofire": {
".indexOn": "g"
}
}
}