如何在spinner中从firebase数据库中订购数据?

时间:2017-09-30 17:52:08

标签: android firebase firebase-realtime-database spinner

我有一个firebase数据库,其中包含每个商店的名称和编号。我想要一个微调器显示每个商店的名称,以便我们可以选择一个。商店名称示例是“0023 franklin”,我想按号码订购。

我的代码是使微调器

    mydb.orderByValue().addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            // Is better to use a List, because you don't know the size
            // of the iterator returned by dataSnapshot.getChildren() to
            // initialize the array

            final List<String> areas = new ArrayList<String>();

            for (DataSnapshot areaSnapshot: dataSnapshot.getChildren()) {
                Store storeName = areaSnapshot.getValue(Store.class);
                areas.add(storeName.getStoreName());
            }

            Spinner areaSpinner = (Spinner) findViewById(R.id.spinner);
            ArrayAdapter<String> areasAdapter = new ArrayAdapter<String>(checkout.this, android.R.layout.simple_spinner_item, areas);
            areasAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            areaSpinner.setAdapter(areasAdapter);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    }); 

它显示所有商店,但没有按号码排序。并且商店没有按顺序添加到数据库中。

如何实现这一目标?

添加JSON

storelist:

-KvIoZC0AbpD1-SJJrIS

faxNum:987654321

storeName:0024富兰克林

-KvIobgHLouocLpMkN6k

faxNum:1234567890

storeName:0003 Randle

1 个答案:

答案 0 :(得分:0)

您可以使用以下任何方法对数据进行排序:

  

orderByChild()

     

orderByValue()

     

orderByKey()

您可以使用&#39; storeNumber&#39; 等密钥存储该号码,并使用以下可用方法:

orderByChild("storeNumber");

更多用法请参考: https://firebase.google.com/docs/database/android/lists-of-data?authuser=0#sort_data