Firebase 数据被覆盖
Firebase data gets overwritten
每次我的位置发生变化时,我都希望它向同一个根 ID 添加一个航点,但每次它只是覆盖根内的航点。
已将 .setValue 更改为 .updateChildren 但仍然没有成功。
Firebase mainRef = null;
private void saveToFirebase() {
while (isFirstTime) {
// Generates root id
mainRef = myFirebaseRef.push();
isFirstTime = false;
}
// Generates new id for waypoint
Firebase wayRef1 = mainRef.push();
String waypointKey = wayRef1.getKey();
// Create waypoint post
Map<String, Object> newPost = new HashMap<String, Object>();
newPost.put("latitude", mLastLocation.getLatitude());
newPost.put("longitude", mLastLocation.getLongitude());
// POST HOLDER
Map<String, Object> waypointHolder = new HashMap<>();
waypointHolder.put(waypointKey, newPost);
// PARENT OF WAYPOINTHOLDER
Map mParent = new HashMap();
mParent.put("timeStamp", mLastUpdateTime);
mParent.put("waypoints", waypointHolder);
mainRef.updateChildren(mParent);
}
您似乎正在创建航路点值的散列图,但在添加新值之前没有将现有值加载到散列图中。因此,您每次都在创建一个新的哈希图,向其中添加一个条目,然后将其发布到 firebase。这导致每次存储在 firebase 中的哈希图都有一个航路点条目。
每次我的位置发生变化时,我都希望它向同一个根 ID 添加一个航点,但每次它只是覆盖根内的航点。 已将 .setValue 更改为 .updateChildren 但仍然没有成功。
Firebase mainRef = null;
private void saveToFirebase() {
while (isFirstTime) {
// Generates root id
mainRef = myFirebaseRef.push();
isFirstTime = false;
}
// Generates new id for waypoint
Firebase wayRef1 = mainRef.push();
String waypointKey = wayRef1.getKey();
// Create waypoint post
Map<String, Object> newPost = new HashMap<String, Object>();
newPost.put("latitude", mLastLocation.getLatitude());
newPost.put("longitude", mLastLocation.getLongitude());
// POST HOLDER
Map<String, Object> waypointHolder = new HashMap<>();
waypointHolder.put(waypointKey, newPost);
// PARENT OF WAYPOINTHOLDER
Map mParent = new HashMap();
mParent.put("timeStamp", mLastUpdateTime);
mParent.put("waypoints", waypointHolder);
mainRef.updateChildren(mParent);
}
您似乎正在创建航路点值的散列图,但在添加新值之前没有将现有值加载到散列图中。因此,您每次都在创建一个新的哈希图,向其中添加一个条目,然后将其发布到 firebase。这导致每次存储在 firebase 中的哈希图都有一个航路点条目。