2017-02-15 56 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

那么是否还有其他安全的方式可以执行多路径更新?或者,我现在的方法是否正确? –

回答

相关问题