如何在firebase实时android工作室中计算货币价值



如何在firebase实时安卓工作室中计算货币价值

你好,我如何将一个值与现有节点值相加?

每次调用onDataChange时,将值与firebase的"money"节点的值相加欢迎任何帮助。

我的代码

FirebaseDatabase.getInstance().getReference("Users");
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
ref.child("Users").child(userUid).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
ref.child("Users").child(userUid).child("money").setValue("350");
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});

您可以使用transaction,而不是进行简单的写操作。

只需参考以下代码。

DatabaseReference ref = FirebaseDatabase.getInstance().getReference()
.child("Users").child(userUid).child("money");

ref.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
Object currentMoney = mutableData.getValue();
int totalMoney = 0;
if (currentMoney == null) {
totalMoney = moneyToAdd;
} else {
totalMoney = Integer.parseInt(currentMoney) + moneyToAdd;
}
mutableData.setValue(totalMoney);
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError databaseError, boolean b,
DataSnapshot dataSnapshot) {
// Transaction completed
Log.d(TAG, "postTransaction:onComplete:" + databaseError);
}
});

最新更新