2016-03-30 17 views
0

Firebase ve angular2 ile ilgili küçük bir sorunla karşı karşıyayım. Bazı küçük görevler yüklüyorum ve kullanıcılar bunlara başvurabilir.firebase anlık görüntüsü değişikliği ve angular2

loadTask() { 
    let post = [] 
    const publicationRef = this.rootRef.child('task').child('attente'); 
    const usersR = this.rootRef.child('users') 
return Observable.create((observer) => { 
    this.geoQuery.on("key_entered", function(key, location, distance){ 
    publicationRef.child(key).on('value', snapshot => { 
     const taskkey = snapshot.key() 
     snapshot.forEach((data) => { 
     const datakey = data.key(); 
     const dataVal = data.val(); 
     usersR.orderByKey().equalTo(dataVal.user).on('child_added', snapshot => { 
      console.log({key: datakey,nom: snapshot.val().nom, distances: distance}) 
      post.push({nom: dataVal.nom, key: datakey,unom: snapshot.val().nom, uprenom: snapshot.val().prenom, distance: Math.floor(distance), uimage:snapshot.val().image, budget: dataVal.budget, description: dataVal.description, date:dataVal.date, location: dataVal.location, user: dataVal.user, id1: taskkey, id:datakey}) 
      observer.next(post) 
     }) 
     }) 
    }) 
    }) 
}) 
} 

tüm görev görüntülenen ama bir göreve uyguladığınızda ı sayfayı yeniden ne zaman, dom yeni bir itme yöntemi, bu nedenle yeni bir görünen aynı değere sahip görevi ve disseapear çağrı vardır. i

loadTask() { 
    const publicationRef = this.rootRef.child('task').child('attente'); 
    const usersR = this.rootRef.child('users') 
return Observable.create((observer) => { 
    this.geoQuery.on("key_entered", function(key, location, distance){ 
    publicationRef.child(key).on('value', snapshot => { 
     const taskkey = snapshot.key() 
     snapshot.forEach((data) => { 
     const datakey = data.key(); 
     const dataVal = data.val(); 
     usersR.orderByKey().equalTo(dataVal.user).on('child_added', snapshot => { 
      console.log({key: datakey,nom: snapshot.val().nom, distances: distance}) 
      const publicio = [{nom: dataVal.nom, key: datakey,unom: snapshot.val().nom, uprenom: snapshot.val().prenom, distance: Math.floor(distance), uimage:snapshot.val().image, budget: dataVal.budget, description: dataVal.description, date:dataVal.date, location: dataVal.location, user: dataVal.user, id1: taskkey, id:datakey}] 
      observer.next(publicio) 
     }) 
     }) 
    }) 
    }) 
}) 
} 

aynı değere sahip yeni veri eklemek doesnt bir görev için geçerli itme yöntemini kaldırmak çalıştı, ancak deneyin

cevap

0

dom sadece tek bir veri kümesi yüklemek ve hepsi "on" yönteminde temiz gönderi:

publicationRef.child(key).on('value', snapshot => { 
    post = []; 
    const taskkey = snapshot.key(); 
    . 
    . 
    . 
+0

Merhaba adem anwser için teşekkürler, çoktan denedim, çalışmaz – PrinceZee