为了账号安全,请及时绑定邮箱和手机立即绑定

如何将实时 Firebase 数据库中的数据提取到数组中?

如何将实时 Firebase 数据库中的数据提取到数组中?

四季花海 2022-05-21 13:36:08
我创建了一个自定义日历,它使用从 github 链接https://github.com/DeveloperBrothers/Custom-Calendar-View获取的数组“HomeCollection” ,以便在我的 android 应用程序中创建自定义日历。目前,事件数据被硬编码到这个数组中(参见下面的代码片段),但希望从我的 firebase 数据库中获取事件属性,而不是在我创建数据库并保存此类事件数据的地方(参见下面的图片链接)。HomeCollection.date_collection_arr = new ArrayList<HomeCollection>();        HomeCollection.date_collection_arr.add(new HomeCollection("2018-11-21", "Winter Table Quiz", "7-10 pm, Clubhouse", "ClubHouse", "Come along to the Winter Table Quiz, €5pp, tables of 4, theres lots of great prizes to be won."));       HomeCollection.date_collection_arr.add(new HomeCollection("2018-11-03", "u21 Division 1 Training ", "10-11am, Club Grounds", "ClubHouse", "Weekly Division 1 training. Weather dependant."));        HomeCollection.date_collection_arr.add(new HomeCollection("2018-11-03", "u21 Division 2 Training ", "11-12am, Club Grounds", "ClubHouse", "Weekly Division 2 training. Weather dependant."));        HomeCollection.date_collection_arr.add(new HomeCollection("2018-11-10", "u21 Division 1 Training ", "10-11am, Club Grounds", "ClubHouse", "Weekly Division 1 training. Weather dependant."));        HomeCollection.date_collection_arr.add(new HomeCollection("2018-11-10", "u21 Division 2 Training ", "11-12am, Club Grounds", "ClubHouse", "Weekly Division 2 training. Weather dependant."));谁能帮我将此静态代码更改为我的 Firebase 数据库数据?
查看完整描述

2 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

1)你必须在你的代码中获取firebase数据引用


DatabaseReference mFireBaseDatabaseReference = FirebaseDatabase.getInstance().getReference();

2)然后你添加了firebase监听器来获取数据:


mFireBaseDatabaseReference.child("events").addListenerForSingleValueEvent(new ValueEventListener() {

            @Override

            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {


                //you can parse the data in your models here like this

for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {

Event event = childSnapshot.getValue(Event.class);

HomeCollection.date_collection_arr.add(event);

}

            }


            @Override

            public void onCancelled(@NonNull DatabaseError databaseError) {


            }

        });


查看完整回答
反对 回复 2022-05-21
?
潇湘沐

TA贡献1816条经验 获得超6个赞

因此,您可以制作一个 Java bean 来保存所有这些数据。您作为对象存储的所有数据的制作getter和方法。setter例如,为对象属性创建getter和setter方法,例如:eventDate、eventDescription 等,并假设您将 bean 命名为EventBean.java.


现在使用childEventListener这样的:


mDatabaseReference = mFirebaseDatabase.getReference().getChild("event");

mDatabaseReference.addChildEventListener(new OnChildEventListener(){


@Override

public void onChildAdded(DataSnapshot snapshot, String previousChildName){

EventBean data = snapshot.getValue(EventBean.class);//now you have got data in the 

eventbean instance

System.out.println(data.getEventDate());

}

});

我希望这就是你要找的。


查看完整回答
反对 回复 2022-05-21
  • 2 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信