将Firebase数据库中的特定值检索到字符串变量中

时间:2018-11-14 14:00:36

标签: java android firebase firebase-realtime-database

我正在尝试从Firebase实时数据库中检索特定值。

数据如下:

 The data looks like this;

我想从其中任何一个获取URL值,然后将其放入字符串变量中以备后用。这样,如果更改了下载链接,则无需更改程序。到目前为止,我的代码是;

DatabaseReference fdb = FirebaseDatabase.getInstance().getReference();
//Query query = fdb.child("URLDOWNLOADS").child("WSSeasons")
fdb.addListenerForSingleValueEvent(new ValueEventListener()
{
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot)
    {
        for (DataSnapshot url : dataSnapshot.getChildren())
        {
            LoginInfoFirebasedb DownURL = url.getValue(LoginInfoFirebasedb.class);
            String temp = DownURL.dwldURL;
            URL1 = temp;
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError)
    {

    }
});

一些帮助将不胜感激。我知道这可能是一个简单的问题,但我很沮丧。

1 个答案:

答案 0 :(得分:3)

要以字符串形式获取每个网址,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference ref = rootRef.child("URLDOWNLOADS");
ValueEventListener valueEventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String key = ds.getKey();
            String url = ds.child("URL").getValue(String.class);
            Log.d(TAG, key + " / " + url);
        }
    }

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