我有一个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
答案 0 :(得分:0)
您可以使用以下任何方法对数据进行排序:
orderByChild()
orderByValue()
orderByKey()
您可以使用&#39; storeNumber&#39; 等密钥存储该号码,并使用以下可用方法:
orderByChild("storeNumber");
更多用法请参考: https://firebase.google.com/docs/database/android/lists-of-data?authuser=0#sort_data