Firebase-在实时数据库中对条目重新排序的最佳方法

时间:2018-08-15 14:32:45

标签: java android firebase firebase-realtime-database

正在尝试构建队列管理应用。然后,我使用Firebase push()将新条目添加到Firebase实时数据库中。插入顺序是我的默认设置。

对于特定情况-我想将某些元素下推2或3步。 最好的方法是什么? 我需要使用Firebase函数吗? 还是我需要一个单独的服务器来处理此逻辑?

示例: 说,我有一组来自不同客户端应用程序的10个推送请求,它们希望进入队列。 当客户未到达时,我想将他们推到队列中5-7个位置。

有没有在没有服务器的情况下处理这些情况的好方法

我试图将逻辑放在客户端,但是我猜想如果客户端在使用电话时脱机,那将无济于事。

此外,我没有将队列号设置为子元素,因为firebase会注意插入顺序。队列#我想如果2个以上的客户端试图同时进入队列,则会创建冲突的条目。不确定这是否是正确的方法。

1 个答案:

答案 0 :(得分:1)

很遗憾,您无法更改Firebase Console中节点的顺序。默认情况下,所有节点均按键排序。如果需要按特定条件对数据库元素进行排序,只需在item对象中添加另一个属性,这将帮助您构建一个查询,该查询以所需顺序检索项目。假设您要按时间戳记订购商品,并且您的数据库结构如下所示:

Firebase-root
   |
   --- users
        |
        --- uid
             |
             --- name: "John"
             |
             --- age: 22
             |
             --- creationDate: 1534424049

要按创建日期对用户进行排序,应该使用如下查询:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef.child("users").orderByChild("creationDate");