簡體   English   中英

將多個 gps 位置保存到同一個 firebase 實時數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM