在DatabaseReference.updateChildren()调用中设置优先级?

时间:2016-09-17 17:30:50

标签: android firebase firebase-realtime-database

为了在我的Firebase Android应用程序中进行原子数据操作,我使用updateChildren(Map<String, Object> update)方法通过单个命令设置多个值(这可以防止数据不一致。

在某些情况下,在写入数据时,我还需要设置优先级,以便正确排序索引元素。

使用'非原子'setValue(Object value, Object priority)操作,可以写入一个值并同时设置优先级。使用updateChildren()命令不允许设置优先级。

为了设置新创建数据的优先级,我目前在setPriority()命令的CompletionListener中调用updateChildren()。这有效,但会导致奇怪的UI行为(元素被添加到列表的底部,然后它们移动到正确的位置)。

正确处理此问题的推荐方法是什么?

1 个答案:

答案 0 :(得分:1)

如果您希望在通话updateChildren中包含优先级,则可以使用以.priority结尾的密钥:

map.put("path/to/child/.priority", 42);

总的来说,没有理由继续使用优先级。见What does priority mean in Firebase?