Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将侦听器添加到firebase生成的密钥中的子级?_Javascript_Json_Firebase - Fatal编程技术网

Javascript 将侦听器添加到firebase生成的密钥中的子级?

Javascript 将侦听器添加到firebase生成的密钥中的子级?,javascript,json,firebase,Javascript,Json,Firebase,根据布局 + activity + -K5p_pBXog4kb0SVLXxj text:'something', when:111 + thread + -K5paF53zm3cuudP9FUQ id:8, text:'something else' 有没有办法将侦听器添加到活动(如/activity/*/thread)内部的任何新“线程”插入中 当添加了新的活动时,我得到了这些活动的提要,但是当附加了一个线程时,没有任

根据布局

+ activity
  + -K5p_pBXog4kb0SVLXxj
    text:'something',
    when:111
    + thread
      + -K5paF53zm3cuudP9FUQ 
        id:8,
        text:'something else'
有没有办法将侦听器添加到活动(如/activity/*/thread)内部的任何新“线程”插入中


当添加了新的活动时,我得到了这些活动的提要,但是当附加了一个线程时,没有任何触发。我是否需要将[thread]部分移到它自己的根目录中,并将线程ID与活动ID匹配,以了解何时对主活动线程进行线程注释?

根据您的注释更新答案

您想收听
/activity/$theid/thread/$threadId

var ref = new Firebase('https://<my>.firebaseio.com/threadActivity');
var activityRef = ref.child('some-id');
activityRef.on('child_added', function(snap) {
  // will update you for every child at the location and each child added
  console.log(snap.val()); 
});
不要嵌套,而是将
/thread/$threadId
分解到它自己的根位置

{
  "threadActivity": {
     "$activityId": {
        "$threadId" : {

        } 
     }
   } 
}
现在,添加新线程时,您只需收听
/threadActivity/$activityId

var ref = new Firebase('https://<my>.firebaseio.com/threadActivity');
var activityRef = ref.child('some-id');
activityRef.on('child_added', function(snap) {
  // will update you for every child at the location and each child added
  console.log(snap.val()); 
});
var ref=new Firebase('https://.firebaseio.com/threadActivity');
var activityRef=ref.child('some-id');
activityRef.on('child_added',函数(snap){
//将为该位置的每个子项和添加的每个子项更新您
console.log(snap.val());
});

这是一个web平台,主要问题是任何登录的用户都可以创建一个主线程,在所有浏览器中进行更新,但当管理员将其注释添加到主线程时,我们会通过“/activity/theid#/thread”进行添加,但没有其他客户端看到更新。我无法为每个/activity/activity ID#/thread添加侦听器,这就是我询问是否可以执行/activity/*/thread的原因-然后添加注释时,我可以提取活动ID并更新适当的UI元素。我可能不得不重新思考这是如何实施的,这是有道理的。我更新了我的答案。如果你重新设计你的数据结构,事情会容易得多。像你的例子一样进行了调整,现在提要工作得很好。请告诉我答案是否还有其他考虑因素。如果没有,请将其标记为已接受,保持未应答队列的整洁是很好的。既然你说我的回答对你有用,你能将其标记为已接受吗?这就是Stackoverflow的工作方式。关于你的问题,如果还有什么我应该知道的,请告诉我。