【发布时间】:2020-05-01 23:12:55
【问题描述】:
我最近开始在 Android Studio 上使用 FirebaseDatabase 库。因此,我已经读到,当您更新/修改 Firebase 数据库上的多个位置时,以防发生任何错误,并确保数据在某些位置没有被修改,并且在其他事务中没有被修改> 被使用。
JavaScript 中的事务已被彻底覆盖,并提供了适当的文档。但是,Android Studio 库的文档不是很清楚。链接是link1 和link2
什么是可变数据,它有什么价值?现在,这就是我更新或修改数据库中数据的方式。我需要更新节点帖子和用户的值
HashMap<String, Object> hm = new HashMap<>();
hm.put("/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");
}
});
我知道这样做是错误的,因此解释或指向教程的链接将非常有帮助。
【问题讨论】:
-
Firebase 文档在这里有一个相当不错的交易示例:firebase.google.com/docs/database/android/…。但是事务和多路径更新本质上是不同的,因为transactions only work on a single location。
-
那么有没有其他安全的方法可以进行多路径更新?或者我目前的方法是正确的方法吗?
标签: android firebase transactions firebase-realtime-database