这是我的Firebase数据库结构
"randomParentID" : {
"description" : "my description is here",
"meetings" : {
"randomidmeetings2" : true
},
"members" : {
"WoZ3X4OZBuRepEuZZ0mUONa5h1a2" : true,
"fjshtY3lFdWott5Zd6lr9rJSy7z1" : true
},
"title" : "my title"
}
我需要知道randomParentID
内的任何值何时发生变化。所以我把addValueEventListener
放在那里。
但我还想将addChildEventListener
添加到meetings
和members
节点,以便更具体地了解添加或删除的数据。
有了这个,当我只想要调用onChildAdded
(或删除或更改)时,我也会调用onDataChange
(来自randomParentID
的监听器)。
我的问题是,有没有办法知道哪个子节点已经从onDataChange
内部进行了更改,以便在更改的数据为meetings
或{{{{}}时可以跳过它1}}。事件一共。感谢
答案 0 :(得分:2)
有没有办法知道哪个子节点已经存在 从内部改变了onDataChange
不,没有。任何小的更改都会调用onDataChange
您可以在randomParentID/description
和randomParentID/title
添加ValueEventListener,并继续使用randomParentID/meetings
和randomParentID/members
或者,将对象内的members
和meetings
移动到项目外部。数据库看起来像这样
{
"items" : {
"randomParentID" : {
"description" : "my description is here",
"title" : "my title"
}
},
"items_meetings" : {
"randomParentID" : {
"randomidmeetings2" : true
}
},
"items_members" : {
"randomParentID" : {
"WoZ3X4OZBuRepEuZZ0mUONa5h1a2" : true,
"fjshtY3lFdWott5Zd6lr9rJSy7z1" : true
}
}
}
使用此结构,您可以继续在ValueEventListener
items/randomParentID