【问题标题】:how to retrieve the data in a sorted order from firebase where the sorting field is the name如何从排序字段为名称的firebase中按排序顺序检索数据
【发布时间】:2018-03-17 07:27:54
【问题描述】:
passbuddy-2af92
    Passwords
        pass1
            age: 20
            name: "Shantanu"
        pass2
            age: 42
            name: "Rinku"
        pass3
            age: 51
            name: "Swarup"

这是我的 firebase 数据库。我想根据名称按排序顺序检索数据:即

{pass3={name=Swarup, age=51}, pass1={name=Shantanu, age=20}, pass2={name=Rinku, age=42}}

或相反的顺序

我已尝试使用这些代码行来完成所需的任务,但它们似乎不起作用。

DatabaseReference databasePasswords = FirebaseDatabase.getInstance().getReference().child("Passwords");
    databasePasswords.orderByChild("name").startAt("S").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Log.i(TAG, "onDataChange: DATA : " + dataSnapshot.getValue().toString());
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

谢谢你提前帮助家伙...

【问题讨论】:

  • 运行代码时出了什么问题?
  • 一切正常,我只是没有得到想要的结果,即我没有按排序顺序得到结果...

标签: android firebase firebase-realtime-database


【解决方案1】:

当您对 Firebase 数据库执行查询时,可能会有多个结果。当您使用ValueEventListener 时,所有匹配的节点都将在单个DataSnapshot 中传递给您。所以快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。您的代码将需要处理此列表,以便维护匹配节点的顺序:

DatabaseReference databasePasswords = FirebaseDatabase.getInstance().getReference().child("Passwords");
databasePasswords.orderByChild("name").startAt("S").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
            Log.i(TAG, "onDataChange: Key : " + childSnapshot.getKey()+, Name : "+childSnapshot.child("name").getValue());
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException(); // never ignore errors
    }
});

【讨论】:

    【解决方案2】:

    我正在研究对我的 Firebase 数据的部分进行排序、过滤和限制。这是一个很好的参考页面:

    https://firebase.google.com/docs/firestore/query-data/order-limit-data

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多