在微调器中列出 Firebase 数据库表
List Firebase database tables in spinner
我正在尝试在微调器中列出我的 Firebase 数据库表。我有一个节点产品,其中包含其他产品的列表。我的目标是从父节点列出这些子目录并将它们列在微调器中。
看看我的数据库。
database structure
这是我迄今为止尝试过的方法,但收效甚微。
mDatabaseReference.child("Products").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
DataSnapshot data = dataSnapshot;
ArrayList<String> list = new ArrayList<>();
for (DataSnapshot lists : data.getChildren()){
Log.d("ddd","Array List: "+lists.getValue().toString());
list.add(String.valueOf(lists.getValue()));
//textView.setText(lists.getValue().toString());
}
showDataInSpinner(list);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
要在 Spinner 中显示数据,这是代码。
public void showDataInSpinner(ArrayList<String> data) {
ArrayAdapter<String> adapter = new ArrayAdapter<>(
this, android.R.layout.simple_spinner_item, data
); //Create the Adapter to set the data
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //Set the layout resource to create the drop down views.
spinner.setAdapter(adapter); //Set the data to your spinner
spinner.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener<String>() {
@Override public void onItemSelected(MaterialSpinner view, int position, long id, String item) {
category = item;
refreshproducts();//displays db data
}
});
}
有人指导我如何正确地做。result
而不是使用 getValue()
使用 getKey()
来获取节点的密钥。
Log.d("ddd","Array List: "+lists.getKey().toString());
list.add(String.valueOf(lists.getKey()));
我正在尝试在微调器中列出我的 Firebase 数据库表。我有一个节点产品,其中包含其他产品的列表。我的目标是从父节点列出这些子目录并将它们列在微调器中。 看看我的数据库。 database structure
这是我迄今为止尝试过的方法,但收效甚微。
mDatabaseReference.child("Products").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
DataSnapshot data = dataSnapshot;
ArrayList<String> list = new ArrayList<>();
for (DataSnapshot lists : data.getChildren()){
Log.d("ddd","Array List: "+lists.getValue().toString());
list.add(String.valueOf(lists.getValue()));
//textView.setText(lists.getValue().toString());
}
showDataInSpinner(list);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
要在 Spinner 中显示数据,这是代码。
public void showDataInSpinner(ArrayList<String> data) {
ArrayAdapter<String> adapter = new ArrayAdapter<>(
this, android.R.layout.simple_spinner_item, data
); //Create the Adapter to set the data
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //Set the layout resource to create the drop down views.
spinner.setAdapter(adapter); //Set the data to your spinner
spinner.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener<String>() {
@Override public void onItemSelected(MaterialSpinner view, int position, long id, String item) {
category = item;
refreshproducts();//displays db data
}
});
}
有人指导我如何正确地做。result
而不是使用 getValue()
使用 getKey()
来获取节点的密钥。
Log.d("ddd","Array List: "+lists.getKey().toString());
list.add(String.valueOf(lists.getKey()));