2017-02-15 61 views
0

我最近開始在Android Studio上使用FirebaseDatabase庫。因此,我已經讀過,當您更新/修改Firebase數據庫中的多個位置時,如果發生任何錯誤並確保數據在某些位置未被修改且未在其他位置修改,則使用事務

Firebase - 使用Android Studio中的交易進行多路徑更新

JavaScript中的事務已被徹底覆蓋並提供了適當的文檔。但是,Android Studio庫的文檔不是很清楚。鏈接是link1link2


什麼是可變數據和它持有什麼樣的價值?現在,這是我更新或修改數據庫上的數據的方式。我需要更新的節點的帖子和用戶

HashMap<String, Object> hm = new HashMap<>(); 
hm.put("https://stackoverflow.com/users/"+key+"/name/","New Name"); 
hm.put("/posts/"+key+"/number_of_posts/", 2); 
FirebaseDatabase.getInstance().getReference().updateChildren(hm, new DatabaseReference.CompletionListener() { 
    @Override 
    public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) { 
     if(databaseError == null) 
      Log.d(TAG, "TASK WAS SUCCESSFULLY COMPLETED"); 
     else 
      Log.d(TAG, "SOMETHING WENT WRONG"); 
    } 
}); 

值,我知道這是錯誤的方式做到這一點,這樣的解釋或鏈接到一個教程做這將是真正的幫助。

+1

Firebase文檔在這裏有一個相當不錯的交易示例:https://firebase.google.com/docs/database/android/read-and-write#save_data_as_transactions。但事務和多路徑更新本質上是不同的,因爲[事務只能在一個位置上工作](http://stackoverflow.com/questions/39297884/how-can-i-use-a-transaction-while-performing-一的多位置更新功能於火力)。 –

+0

那麼是否還有其他安全的方式可以執行多路徑更新?或者,我現在的方法是否正確? –

回答