2
我必須更新我的代碼,並通過將其值增加1來實現對節點的另一個子更新。我當前的代碼如下所示(工作正常):以原子風格更新多個節點並將值增加1
String key = database.child("rides").push().getKey();
Map<String, Object> childUpdates = new HashMap<>();
childUpdates.put("/rides/" + key, ride.toMap());
childUpdates.put("/ridesUser/" + ride.getUserID() + "/ownRides/" + key, ride.getTime());
database.updateChildren(childUpdates, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
}
});
一個簡單的方法來添加增量代碼如下:
childUpdates.put("/stations/" + ride.getFromID() + "/rideCount", fromStation.getRideCount() + 1);
但fromStation.getRideCount()
可能已經過時,如果其他用戶添加該站乘車。 我讀過幾篇關於使用事務增加值的文章。我怎樣才能將孩子更新和交易結合起來?我應該在"/stations/" + ride.getFromID()
上進行交易,並在doTransaction()
方法中更新我的孩子嗎?這是原子性的嗎?