我是 Android Studio 和 Firebase 的新手。
我正在尝试从 Firebase 检索数据。我有节点 Orders
并且该节点具有唯一的 id
、choices
和 price
。
这是我的 Firebase 的样子:
my-application0-8b65a
Orders
- Lw4hgcNwuCitXUKHdNh
choices:"Pasta\n"
price:19
- Lw7zID257gZsJN9s0J3
choices:"Shawarma\nPasta\n"
price: 27
我曾尝试使用 addValueEventListener
从大学检索所有订单,但是当我运行应用程序并转到检索页面时,它会返回到主 Activity 页面。我正在使用 listview(id:list_view) 来显示数据。
public class DataRetrived extends AppCompatActivity {
private DatabaseReference mDatabase;
private ListView mUserList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dataactivity);
mDatabase = FirebaseDatabase.getInstance().getReference();
mUserList = findViewById(R.id.list_view);
final List<Orders> ordersList = new ArrayList<>();
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
ordersList.clear();
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
Orders orders = postSnapshot.getValue(Orders.class);
ordersList.add(orders);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: ");
}
});
}
}
最佳答案
Firebase ref = new Firebase(FIREBASE_URL);
ref.addValueEventListener(新的ValueEventListener(){
@覆盖
public void onDataChange(DataSnapshot 快照){
Log.e("计数 ",""+snapshot.getChildrenCount());
for (DataSnapshot postSnapshot: snapshot.getChildren()) {
<YourClass> post = postSnapshot.getValue(<YourClass>.class);
Log.e("Get Data", post.<YourMethod>());
@覆盖
public void onCancelled(FirebaseError firebaseError) {
Log.e("读取失败:",firebaseError.getMessage());
});
关于android - 如何从 firebase 检索所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59351649/