2017-08-03 76 views
1

任何人都可以教我如何更新我的Firebase值,當我點擊我的Android Studio應用程序?沒有必要檢索和顯示數據。只是我的Firebase中的增量值。例如,現在Firebase計數器值爲0,當我點擊一個按鈕時,如何增加Firebase中的計數器值?我曾嘗試使用下面的代碼,但它不工作。Android工作室值增量在Firebase

import com.firebase.client.Firebase; 

public class Voting extends AppCompatActivity { 
private Button msendData; 
int counter; 
    private Firebase mRef; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_voting); 
     Firebase.setAndroidContext(this); 

     mRef = new Firebase("https://lollol.firebaseio.com/"); 
     msendData = (Button) findViewById(R.id.votethis); 
     msendData.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Firebase mRefChild = mRef.child("Booth A"); 
       mRefChild.setValue(counter++); 
      } 
+0

這看起來應該可以工作 –

回答

2

爲了增加Firebase數據庫中的值,首先需要檢索該值。沒有辦法在不知道的情況下增加價值。要做到這一點,你需要遵循以下步驟:

  1. 從您的數據庫的特定值添加監聽
  2. 店,在可變
  3. 增加值是variabe使用計數器++
  4. 使用setValue(counter)直接方法上的參考

假設您的計數器的密鑰是counter,代碼將如下所示:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference yourRef = rootRef.child("Booth_A"); 
ValueEventListener eventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     int counter = dataSnapshot.child("counter").getValue(Integer.class); 
     counter++; 
     yourRef.child("counter").setValue(counter); 
     Log.d("TAG", counter); 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}; 
yourRef.addListenerForSingleValueEvent(eventListener); 

不要忘記在Booth and A之間使用_(下劃線),如上面的代碼所示。

希望它有幫助。

+0

謝謝,我會試試看。 –

+0

我如何存儲變量的值? –

+0

目前我這樣做了,但得到了錯誤mRef = new Firebase(「https://lollol.firebaseio.com/Booth A」); mRef.addValueEventListener(新ValueEventListener(){ @覆蓋 公共無效onDataChange(DataSnapshot dataSnapshot){ int值= dataSnapshot.getValue(int.class); INT計數器=值; } –