【问题标题】:Retrieve specific value from Firebase database into string variable从 Firebase 数据库中检索特定值到字符串变量中
【发布时间】:2018-11-14 22:06:44
【问题描述】:

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

数据如下:


我想从其中任何一个中获取 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)
    {

    }
});

我们将不胜感激。我知道这可能是一个简单的问题,但我很难过。

【问题讨论】:

  • 对于您的用例(“如果下载链接更改,则无需更改程序”),您最好改用Firebase Remote Config 吗?这正是远程配置的目标。
  • @Grimthorr 如果我有更多时间,我会研究它,但到目前为止这是一个小问题,下面的解决方案可以解决它。
  • 很高兴你把它整理好了。如果您确实从一开始就实施远程配置,那么将此类更改推送到您的应用程序会非常强大。
  • @Grimthorr 谢谢,我会在我正在开发的下一个应用程序中记住这一点。

标签: java android firebase firebase-realtime-database


【解决方案1】:

要将每个 url 获取为字符串,请使用以下代码:

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);

【讨论】:

  • 如果您还想获取密钥(WSMagazine 等),则还要在循环中打印 ds.getKey()
  • 谢谢,正是我想要的!
  • @AlexanderMcmichael 很高兴听到这个消息。不客气,干杯!
猜你喜欢
  • 1970-01-01
  • 2017-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
  • 2019-02-07
  • 1970-01-01
相关资源
最近更新 更多