[英]Saving multiple gps locations to same firebase real-time database
當按下一個按鈕時,我已經成功地將經度和緯度坐標存儲到 Firebase 實時數據庫中。 如果手機的位置發生變化,當前數據庫會覆蓋坐標。 但是,我想將 append 新坐標寫入數據庫,而不覆蓋以前保存的坐標。
我試圖將其中一個坐標字符串作為孩子傳遞,但是數據庫只接受 az 字母。 有五個獨立的按鈕,每個按鈕記錄用戶的心情和那個心情的位置。
btnGreat = (ImageButton) view.findViewById(R.id.btnGreat);
btnGreat.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
rootNode = FirebaseDatabase.getInstance();
reference = rootNode.getReference("Location");
String latitude = Latitude.getText().toString();
String longitude = Longitude.getText().toString();
Coordinates coordinates = new Coordinates(latitude, longitude);
reference.child("great").setValue(coordinates);
}
});
坐標 class:
public class Coordinates {
String latitude, longitude;
public Coordinates() {
}
public Coordinates(String latitude, String longitude) {
this.latitude = latitude;
this.longitude = longitude;
}
public String getLongitude() {
return longitude;
}
public void setLongitude(String longitude) {
this.longitude = longitude;
}
public String getLatitude() {
return latitude;
}
public void setLatitude(String latitude) {
this.latitude = latitude;
}
}
由於您使用的是setValue()方法,這意味着每次調用此方法時它都會覆蓋現有位置的數據。 如果你想在great
節點下的坐標有不同的值,那么你應該考慮像這樣使用push()方法:
reference.child("great").push().setValue(coordinates);
這將創建一個如下所示的數據庫結構:
Firebase-root
|
--- Location
|
--- great
|
--- $pushedId
| |
| --- latitude: 1.11
| |
| --- longitude: 2.22
|
--- $pushedId
|
--- latitude: 3.33
|
--- longitude: 4.44
然后你可以簡單地讀取數據:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.