2017-05-11 44 views
0

我有这样的结构:如何修改或更新从火力地堡数据库中的值 - 安卓

"Posts": 
     key: 
     numberx: 1 
     numbery: 2 

我想修改或更新numberx的价值

我尝试这一点,但没有作品

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); 

            } 
+0

什么是“错误”? –

回答

0

您需要处理没有值的情况。我认为你需要像这样

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); 
} 
1

要解决这个问题,请使用此代码:

@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); 
} 

希望它能帮助。