为了在我的Firebase Android应用程序中进行原子数据操作,我使用updateChildren(Map<String, Object> update)
方法通过单个命令设置多个值(这可以防止数据不一致。
在某些情况下,在写入数据时,我还需要设置优先级,以便正确排序索引元素。
使用'非原子'setValue(Object value, Object priority)
操作,可以写入一个值并同时设置优先级。使用updateChildren()
命令不允许设置优先级。
为了设置新创建数据的优先级,我目前在setPriority()
命令的CompletionListener
中调用updateChildren()
。这有效,但会导致奇怪的UI行为(元素被添加到列表的底部,然后它们移动到正确的位置)。
正确处理此问题的推荐方法是什么?
答案 0 :(得分:1)
如果您希望在通话updateChildren
中包含优先级,则可以使用以.priority
结尾的密钥:
map.put("path/to/child/.priority", 42);
总的来说,没有理由继续使用优先级。见What does priority mean in Firebase?