如何在不获取唯一密钥的情况下从Firebase检索值

时间:2018-11-09 10:23:54

标签: java android firebase firebase-realtime-database

我正在尝试从Android中的Firebase检索URL。但是,我的问题是,如果不获取子项的唯一密钥,就无法检索url。

我要检索的值如下:

Firebase Image

下面是我用来从firebase检索数据的代码。

 final FirebaseDatabase database = FirebaseDatabase.getInstance();
    myRef = database.getReference().child("LoadItems");

    myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot child : dataSnapshot.getChildren() ){
                String key;
                key = child.getKey();

                Log.d(TAG, "onDataChange: " + key);
                Log.d(TAG, "onDataChange: " + child.getValue());
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) { }
    });

所以我想获取的只是URL。

1 个答案:

答案 0 :(得分:1)

无需知道任何密钥即可获取该URL。因此,请使用我的以下代码行:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference shoesRef = rootRef.child("LoadItems").child("Shoes");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String url = ds.getValue(String.class);
            Log.d(TAG, url);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
    }
};
shoesRef.addListenerForSingleValueEvent(valueEventListener);