如何使用不同的pushID检索我的firebase中的所有数据?

时间:2017-09-21 04:15:00

标签: android firebase firebase-realtime-database

Photo

我想检索所有数据并将每个特定的pushID存储到按钮中。

第一个问题,如何获得推送键? 第二次qustion,获取值后,我想将每个ID存储到一个按钮,以便我可以更新它。怎么样?

3 个答案:

答案 0 :(得分:0)

你能得到一个JsonObject然后:

Set<Map.Entry<String, JsonElement>> entries = responseBody.entrySet();
List<FeedRow> rowList = new LinkedList<>();
for (Map.Entry<String, JsonElement> entry : entries) {
   String key = entry.getKey()); 
   String value = responseBody.get(entry.getKey()).toString();
}

然后保存在列表中。 使用recyclerview, 1.使用此列表添加按钮 2.在每个按钮中添加addOnClickListener

答案 1 :(得分:0)

试试这个:

FirebaseDatabase database = FirebaseDatabase.getInstance();
    database.getReference()
            .child("myfirstfirebaseproject-8f271")
            .child("all-user-dishes")
            .addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    for (DataSnapshot snapshot : dataSnapshot.getChildren()){
                        Log.v("KEY", "this is your key"+snapshot.getKey());
                        Log.v("VALUE", "this is your value"+snapshot.getValue());

                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });

答案 2 :(得分:0)

要获取数据,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference yourRef = rootRef.child("all-user-dishes");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String dishName = ds.child("dishName").getValue(String.class);
            String dishPrice = ds.child("dishPrice").getValue(String.class);
            Log.d("TAG", dishName + " / " + dishPrice);
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
yourRef.addListenerForSingleValueEvent(eventListener);

输出将是:

Luncheeon Meat / 150
Fruit Salad / 50
Sardines / 80