【问题标题】:Java Android Retrieve Pushed Key Data from FirebaseJava Android 从 Firebase 检索推送的密钥数据
【发布时间】:2018-05-26 06:17:00
【问题描述】:

我目前正在做一些事情,我应该能够从 Firebase 获取按键的子项。它应该检索子记录,例如:

  • 日期
  • 主题
  • 更多信息

每次我保存一个条目时,它也可以在应用程序中查看。 firebase 树如下:

enter image description here

保存的条目-按键截图如下:

enter image description here

当您点击它时,这就是用户查看它的方式。

enter image description here

问题是,每当点击 id 时,它只会收到最后一个条目,而不是其他已经在 Firebase 中的条目。

我的代码如下:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
    mFirebasedatabase=FirebaseDatabase.getInstance().getReference().child("user").child(uid).child("dailyDiary");
    id = mFirebasedatabase.getKey();
    firebaseAuth = FirebaseAuth.getInstance();
    user = FirebaseAuth.getInstance().getCurrentUser();

    mFirebasedatabase.child(id).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            List<String> list = new ArrayList<>();
            for  (DataSnapshot datasnap:dataSnapshot.getChildren()) {

                UserDiary userDiary = datasnap.getValue(UserDiary.class);
                String date = userDiary.getDate_time();
                String info = userDiary.getMoreInfo();
                String topic = userDiary.getTopic();
                Log.d("TAG", date + " / " +  topic +  " / " + info);
                list.add(date + topic + info);
            }
            ListView listView = (ListView) findViewById(R.id.list_diary);
            ArrayAdapter arrayAdapter = new ArrayAdapter<String>(HomeThreeViewDiary.this, android.R.layout.simple_list_item_1, list);
            listView.setAdapter(arrayAdapter);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}

【问题讨论】:

    标签: java android firebase firebase-realtime-database


    【解决方案1】:

    发生这种情况是因为您在 for 循环的每次迭代中将这些值 dttimeinfoTopic 设置为相应的文本视图。所以你最终得到了一个元素,最后一个元素设置为TextView。为了解决这个问题,你必须选择,一个是 append 那些对文本视图的价值或更优雅的方式,是使用 ListViewRecyclerView 和一个适配器。 This 是您可以从 Firebase 实时数据库中检索数据并将其显示在 ListView 中的方法,使用 ArrayAdapterthis 是您可以检索的方法数据并使用FirebaseRecyclerAdapter 将其显示在RecyclerView 中。

    【讨论】:

    • 您能解释一下附加文本视图吗?我做了一些冲浪。我找不到合适的例子
    • 你可以看这里。
    • 是的,它将所有数据拉到一个 TextView 中。但又是一个问题,当您从列表视图中单击一个 id 时,它应该只需要一个条目。而是显示列表的每次点击的整个条目。
    • 在这种情况下,您需要使用我答案的第二部分。您无法使用 append 方法实现此目的。
    • 感谢您的快速回复。我在上面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    相关资源
    最近更新 更多