2017-05-11 46 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); 
} 

希望它能幫助。