2017-11-27 1 views
0

Firebase 데이터베이스에서 "Coins"와 그 값인 "20"을 가지고 있습니다. 이제 나는에 직접 값 (즉, 동전) 5를 더하고 싶습니다.안드로이드의 Firebase 데이터베이스에 직접 숫자를 추가하는 방법

그래서 사용자가 버튼을 클릭 할 때마다 서버에서 직접 동전 값이 5 만큼 증가해야합니다. 그렇게 할 방법이 있습니까?

+2

Firebase에서 "transactions"를 사용하십시오. – Fattie

답변

1

Fattie가 언급했듯이 Firebase Database transactions을 사용합니다. 트랜잭션을 사용하면 현재 값에 대한 클라이언트의 최상의 추측을 얻고이를 기반으로 새 값을 반환합니다. 따라서 귀하의 경우 :

coinsRef.runTransaction(new Transaction.Handler() { 
    @Override 
    public Transaction.Result doTransaction(MutableData mutableData) { 
     long value = 0; 
     if (mutableData.exists()) { 
      value = mutableData.getValue(Long.class); 
     } 
     value = value + 5; 
     mutableData.setValue(value); 
     return Transaction.success(mutableData); 
    } 

    @Override 
    public void onComplete(DatabaseError databaseError, boolean b, 
          DataSnapshot dataSnapshot) { 
     Log.d(TAG, "runTransaction:onComplete:" + databaseError); 
    } 
}); 
관련 문제