2016-04-06 15 views
0

Aşağıdaki kodda, anlık görüntüdeki verileri işledikten sonra söz konusu kaydı kaldırmayı deniyorum. Çocuğum yöntemi ile eklenen kaydın anahtarı ile referansımı kaldırdığımda, tüm ebeveyn düğümleri FB uygulamasının köküne kadar kaldırılır. Kodumda bir hata olduğundan şüpheleniyorum. Sağlanabilir herhangi bir yardım için minnettarım. (: Metin olarak sorunuzun eklemek ipucu), ama Firebase faaliyet nasıl karıştırıyorsun olabilir düşünüyorumFirebase çağrısı .remove() ref, tüm ebeveynleri kaldırıyor

var Firebase = require('firebase'); 
var config = require('./config.json'); 
var fbRef = new Firebase(config.firebaseEndpoint + "/messages"); 
var messenger = require('./messenger.js'); 

fbRef.on('value', function (snap) { 

//If Data is returned convert payload to array. 
//pass each mesaage into messenger and upon completion delete the 
// firebase record 
if (snap.exists()) { 

    var payload = snap.val(); 
    var keys = Object.keys(payload); 

    keys.forEach(function (key) { 

     var msg = payload[key]; 

     messenger(msg, function (msgErr, msgData) { 
      if (!msgErr) { 

       fbRef.child(key).remove(); 
      } 
      else { 
       console.log(msgErr); 
      } 
     }); 
    }); 
    } 
}); 

cevap

1

Bu JSON yapısı görmeden kesin olmak zordur.

Firebase, yollar tarafından tanımlanan konumlarda değerleri depolar. Bir konumda bir değer kaydettiğinizde, yol otomatik olarak oluşturulur. Son değeri bir konumdan kaldırdığınızda, yol otomatik olarak kaldırılır. Bunun dışında

bu kod biraz daha deyimseldir: Bunun

fbRef.on('value', function (snap) { 
    if (snap.exists()) { 
    snap.forEach(function(msgSnap) {   
     var msg = msgSnap.val(); 
     messenger(msg, function (msgErr, msgData) { 
     if (!msgErr) { 
      msgSnap.ref().remove(); 
     } 
     else { 
      console.log(msgErr); 
     } 
     }); 
    }); 
    } 
}); 
+0

Frank teşekkürler. Bilgimin içindeki boşluğu belirledin, çünkü yolun son çocukla birlikte kaldırıldığını fark etmedim. Ayrıca, forEach'ı çırpıda işaret ettiğin için teşekkürler. API’da bunu özledim ve bana zaman kazandırıyor. –