我的结构类似于
{
posts : {
post1Key: {
title : "First Post",
comments : {
comment1Key : {},
comment2Key : {},
comment3Key : {}
}
}
}
...
}
我正在使用“/ posts / post1Key / comments”键上的“子更新”事件来收听新评论。
如何组合Firebase查询和事件侦听器。
修改:我知道这可以通过Firebase实现,但是,我正在使用nativescript-plugin-firebase
答案 0 :(得分:2)
您可以将使用Query
方法定义的orderBy...
和使用on()
方法的听众合并:详见文档here
例如,您可以执行类似
的操作var query = db.ref('node1').orderByChild('firstName');
query.on('value', function(dataSnapshot) {
dataSnapshot.forEach(function(childSnapshot) {
var childKey = childSnapshot.key;
console.log(childKey);
var childData = childSnapshot.val();
console.log(childData);
});
});
每次在“node1”下添加新的子节点时,您将获得按firstName排序的子列表
答案 1 :(得分:1)
在撰写本文时,使用nativescript-plugin-firebase无法做到这一点。解决方法是在接收到数据后在eventHandler中进行排序/过滤。
var onChildEvent = function(result) {
//
// Sort: result.value here
//
};
// listen to changes in the /users path
firebase.addChildEventListener(onChildEvent, "/users").then(
function(listenerWrapper) {
var path = listenerWrapper.path;
var listeners = listenerWrapper.listeners; // an Array of listeners added
// you can store the wrapper somewhere to later call 'removeEventListeners'
}
);