首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以列表形式从Firebase检索数据

以列表形式从Firebase检索数据
EN

Stack Overflow用户
提问于 2017-09-07 12:14:25
回答 1查看 55关注 0票数 0

我希望能够检索当前保存在Firebase子文件夹中的所有内容。我这样写到数据库里;

代码语言:javascript
复制
    private void commitPost() {
    final String commentInput = commentText.getText().toString().trim();
    commentProgress.setMessage("Posting");
    commentProgress.show();

    String uniqueId = UUID.randomUUID().toString();
    commentDB.child(postID).child("Comments").child(uniqueId).setValue(commentInput);
    commentProgress.dismiss();
    finish();
}

我希望能够读取当前保存在子文件夹中的所有值,然后最终在ListView中显示它们。

数据库JSON;

代码语言:javascript
复制
  "Engagement" : {
"-Kne46iBe6ooNFKTv_8w" : {
  "Comments" : {
    "c323835c-290c-44f3-8070-f9febf698ec9" : "none now!",
    "stg15QKZFhNmTCYrgL5PtQ4wxJf2" : "testing"
  },
  "Likers" : {
    "stg15QKZFhNmTCYrgL5PtQ4wxJf2" : "email@email.com"
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-07 12:36:46

若要仅从特定节点获取数据,请使用以下代码:

代码语言:javascript
复制
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference engagementRef = rootRef.child("Engagement").child("-Kne46iBe6ooNFKTv_8w").child("Comments");
ValueEventListener eventListener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot ds : dataSnapshot.getChildren()) {
            String value = ds.getValue(String.class);
            Log.d("TAG", value + ", ");
        }
    }

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

你的产出将是:

代码语言:javascript
复制
none now!, testing,
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46096066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档