确定哪个子节点的更改在firebase中使用android触发“onChildChanged”方法

时间:2016-09-23 15:28:04

标签: android firebase firebase-realtime-database

Here是我的火力架结构

这是我的代码在firebase之前

    final FirebaseDatabase database = FirebaseDatabase.getInstance();
    bookingRef = database.getReference("booking");


    query = bookingRef.orderByChild("studentID").equalTo("S00001");
    query.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            Booking myBooking = dataSnapshot.getValue(Booking.class);
            addBookingRow(myBooking, dataSnapshot.getKey());
        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {
              //here it is fired when the alarset value is changed
        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {
            String tag = dataSnapshot.getKey();
            removeBookingRow(tag);

        }

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

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

每个预订节点都有几个child nodes(?),分别是classID,studentID,attend,alarmType

如您所见,我有查询获取具有特定学生ID的节点。

然后,我为已排序的节点添加了addChildEventListener

因此,当预订节点的任何子节点发生更改时,会触发onChildChanged方法,它会为具有子节点更改的预订节点提供数据快照。

这里我想知道哪个子节点发生了变化。就像我想知道在更改ClassID时是否触发了onChildChanged方法。

因为我想根据每个子节点的变化实现不同的行为

我是否必须为每个子节点设置一些监听器?或.. ..

你们能给我解决方案吗?

我正在android studio中开发

感谢

0 个答案:

没有答案