2015-01-21 11 views
18

Tôi đang sử dụng Geofire để thực hiện một vòng trònTrình truy cập trong một khu vực nhất định. Tuy nhiên, với các quan sát viên của tôi, tôi đã lấy lại vị trí, với vị trí tôi cũng lấy lại "Sử dụng chỉ mục không xác định. Hãy xem xét thêm" .indexOn ":" g ""Sử dụng chỉ mục không xác định. Xem xét thêm ".indexOn": "g"

db của tôi cho geofire của tôi trông như thế này karmadots/geofire/{events}

"rules": { 
    "karmadots": { 
    ".read": true, 
    ".write": true, 
    "geofire": { 
     "$events": { 
     ".indexOn": ["g"] 
     } 
    } 
    } 

tôi cũng đã thử:

"rules": { 
    "karmadots": { 
    ".read": true, 
    ".write": true, 
    "geofire": { 
     ".indexOn": ["g"] 
    } 
    } 
} 

Cả hai không làm cho thông điệp đi. Có điều gì khác mà tôi có thể thử đọc hoặc thử làm ví dụ không?

Cảm ơn sự giúp đỡ.

EDIT:

con đường của tôi là xxxxx.firebaseio.com/karmadots/geofire/{keys}

Đây là cách tôi truy vấn:

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") 
    }) 

} 
+1

Cách thức sau có vẻ chính xác hơn. Nhưng chỉ để chắc chắn, bạn có thể chỉ cho chúng tôi truy vấn bạn chạy không? Tốt hơn là hiển thị toàn bộ đường dẫn từ gốc đến các sự kiện thực tế được sử dụng trong truy vấn geofire. –

+0

@FrankvanPuffelen Tôi đã chỉnh sửa bài đăng gốc và bao gồm truy vấn. Không chắc chắn nếu đó là những gì bạn có nghĩa là bởi toàn bộ con đường của tôi. – jshah

+0

Hmm ... khi tôi chạy truy vấn Firebase thông thường trên đó, tôi sẽ không gặp lỗi: 'Firebase mới ('https://karmadots.firebaseio.com/karmadots/geofire/') .orderByChild ('g') .startAt ("9q8yywcp39"). EndAt ("9q8yywcp39"). LimitToFirst (3) .once ('giá trị', hàm (s) {console.log (s.val());}) '. Đó chính là những gì GeoFire làm. –

Trả lời

34

Loại bỏ các dấu ngoặc xung quanh [ "g "] khắc phục sự cố. Đây là đoạn mã cuối cùng:

"rules": { 
    "karmadots": { 
    ".read": true, 
    ".write": true, 
    "geofire": { 
     ".indexOn": "g" 
    } 
    } 
} 
+0

đây là câu trả lời duy nhất tôi có thể tìm thấy. cảm ơn! –

+0

Thông báo tường trình được trích dẫn trong OP có cú pháp chính xác - không chắc chắn các dấu ngoặc đã tham gia như thế nào. – Andy

Các vấn đề liên quan