我有这样的结构:
"Posts":
key:
numberx: 1
numbery: 2我想要编辑或更新数字x的值
我试过了,但不起作用
getPostRef.child("Posts").child("key").child("numberx").runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
long num = mutableData.getValue(Long.class);
mutableData.setValue(num + 1);
return Transaction.success(mutableData);
}发布于 2017-05-12 14:43:30
要解决此问题,请使用以下代码:
@Override
public Transaction.Result doTransaction(final MutableData mutableData) {
if (mutableData.getValue() == null) {
mutableData.setValue("0");
} else {
String numberXString = (String) mutableData.getValue();
int numberx = Integer.parseInt(numberXString);
int increasedNumberX = numberx + 1;
mutableData.setValue(String.valueOf(increasedNumberX));
}
return Transaction.success(mutableData);
}希望能有所帮助。
发布于 2017-05-12 13:28:22
当没有值时,您需要处理案例。我想你需要这样的东西
public Transaction.Result doTransaction(MutableData mutableData) {
long value = 0;
if(mutableData.getValue() != null) {
String num = (String) mutableData.getValue();
value = Long.parseLong(num);
}
value++;
mutableData.setValue(value);
return Transaction.success(mutableData);
}https://stackoverflow.com/questions/43926574
复制相似问题