2016-04-10 19 views
7

Tôi đang cố lưu vị trí (vĩ độ và kinh độ) làm một trong các khóa/trường trong Firebase. Trong ví dụ của họ SFVehicles, họ hiển thị cách truy vấn khi thông tin được lưu trữ nhưng vấn đề của tôi là làm cách nào để tôi lưu ở vị trí đầu tiên.Cách lưu Thông tin Vị trí trong Firebase

Trong bài đăng trên blog của họ, GeoFire goes Mobile, họ đang hiển thị cách dữ liệu trông như thế nào - nhưng làm cách nào để tôi nhận được trường đó location được điền?

enter image description here

tôi có thể tiết kiệm các loại dây vào căn cứ hỏa lực mặc dù. Tôi chỉ sử dụng mã dưới đây. Câu hỏi là Loại dữ liệu nào sẽ là trường location?

 Firebase ref = new Firebase("https://myfirebaselink.firebaseio.com/"); 

     //User 
     alan = new User("Alan Turing", 1912); 


     alanRef.setValue(obj); 

tôi đã cố gắng location là một List<String>, nhưng điều đó không làm việc - lĩnh vực vị trí trông giống như dưới đây:

enter image description here

Edit: Về nghiên cứu nhiều hơn, tìm thấy this blog post by Google nhưng họ cũng lưu dưới dạng các phím latitude1 and kinh độ . This probably was written before GeoFire` đã được giới thiệu.

+0

Bạn đã bao gồm một hình ảnh của cây JSON trong câu hỏi của bạn. Vui lòng thay thế bằng JSON thực tế dưới dạng văn bản mà bạn có thể dễ dàng nhận được bằng cách nhấp vào nút Xuất trong cơ sở dữ liệu Firebase của mình. Có JSON làm văn bản làm cho nó có thể tìm kiếm được, cho phép chúng ta dễ dàng sử dụng nó để kiểm tra với dữ liệu thực tế của bạn và sử dụng nó trong câu trả lời của chúng tôi và nói chung chỉ là một điều tốt. –

+0

Bài đăng trên blog googlegeodeveloper không sử dụng GeoFire. Vì vậy, nó không liên quan đến bạn nếu bạn đang tìm cách sử dụng GeoFire. –

Trả lời

8

Các GeoFire for Java project has a great README, mà bìa (trong số khác) setting location data:

Trong GeoFire bạn có thể thiết lập và vị trí truy vấn bằng các phím chuỗi. Để đặt vị trí cho một khóa, chỉ cần gọi phương thức setLocation(). Phương pháp này được thông qua một phím như là một chuỗi và vị trí như một đối tượng GeoLocation chứa vĩ độ và kinh độ của vị trí:

geoFire.setLocation("firebase-hq", new GeoLocation(37.7853889, -122.4056973)); 

Để kiểm tra xem một ghi đã được cứu thành công trên máy chủ, bạn có thể thêm một GeoFire.CompletionListener đến setLocation() gọi:

geoFire.setLocation("firebase-hq", new GeoLocation(37.7853889, -122.4056973), new GeoFire.CompletionListener() { 
    @Override 
    public void onComplete(String key, FirebaseError error) { 
     if (error != null) { 
      System.err.println("There was an error saving the location to GeoFire: " + error); 
     } else { 
      System.out.println("Location saved on server successfully!"); 
     } 
    } 
}); 

để xóa vị trí và xóa nó khỏi simpl cơ sở dữ liệu y vượt qua trọng điểm của vị trí để removeLocation:

geoFire.removeLocation("firebase-hq"); 
+0

Cảm ơn, readme khá tốt và giải thích mọi hoạt động một cách rõ ràng. Silly tôi đã bỏ lỡ nó, cảm ơn. – user1406716

2

Có vẻ từ here Đó là loại đối tượng là định vị, giống như trong dòng 83.

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