将Firebase中的数据检索到Listview中

时间:2016-11-30 13:07:05

标签: java android firebase firebase-realtime-database

我正在尝试从Firebase检索数据,但没有任何消息。该应用程序已成功编写,但当它尝试获取信息时,它只显示一个空白屏幕。我的Firebase结构为Saica>Calendar>key>Data

我附上了我的Firebase结构图片

enter image description here

这是我的代码:

public class Admin_ViewEvent extends AppCompatActivity {

private ListView mListView;
private ArrayList<String> mMeetings = new ArrayList<>();
private Firebase mRef;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_admin__view_event);

    mRef = new Firebase("https://saica-sgb-77a4f.firebaseio.com/Meetings");
    mListView = (ListView) findViewById(R.id.ListView);

    final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mMeetings);
    mListView.setAdapter(arrayAdapter);

    mRef.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            String value = dataSnapshot.getValue(String.class);
            mMeetings.add(value);
            arrayAdapter.notifyDataSetChanged();
        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {

        }

2 个答案:

答案 0 :(得分:0)

根据旧的屏幕截图参考,您可以从父日历节点获取 date description 。您可以使用以下代码段从会议节点获取详细信息。

FirebaseDatabase.getInstance().getReference().child("Calendar").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot childSnapShot : dataSnapshot.getChildren()) {

                String date = (String) childSnapShot.child("date").getValue();
                String desc = (String) childSnapShot.child("description").getValue();

            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

答案 1 :(得分:0)

基于行

%i

看起来你使用的是错误的firebase sdk。它可能是旧版本或java服务器sdk,但绝对不是最近的android sdk。

检查mRef = new Firebase("https://saica-sgb-77a4f.firebaseio.com/Meetings");:你应该有这样的一行:

build.gradle

连接到您的数据库并获取参考:

  • 将文件compile "com.google.firebase:firebase-database:10.0.0" 从firebase控制台下载到google-services.json文件夹。
  • 像这样创建数据库引用:

    app/