2017-11-17 7 views
0

生成されたIDを持つデータを追加していますが、 "Authors"をグループ化しようとしています。Firebase:追加する前に既存のものを確認してください

私はいくつかの数式に基づいて毎日この特定の人を追加するスクリプトを持っています。ある日に誰が追加されるのか知る方法がないので、投稿時にキーを生成してから(作成者キーを探し出して同じ値の他のキーを見つけることによって)データベースを構造化することを余儀なくされます。

問題は、新しいレコードを追加する前に値が存在するかどうかを確認することです。キー値の1つは「URL」です。私はその値のために各レコードをチェックするために何かを書こうとしましたが、重複を適切に検出することができますが、値が何であるかにかかわらず、データベースに繰り返し書き込むようです。

function CheckDupes(newUrl, author, title, score, url, certified, date){ 
    var stories = []; 
    var duped = "false"; 

    var leadsRef = database.ref().child("Authors").once("value").then(function(authorSnapshot) 
    { 
    authorSnapshot.forEach(function(child) { 
     stories.push(child.val()); 
     }); 
    for(var i = 0; i < stories.length; i++) 
    { 
     console.log("Story: " + stories[i].url); 
     if(stories[i].url == newUrl) 
     { 
     console.log("Duplicate - " + stories[i].url); 
     duped = "true"; 
     alert("Story Exists!"); 
     break; 
     } 
    } 
    }); 

    console.log(duped); 
    if(duped == "false") 
    { 
    firebase.database().ref('Authors/').push({ 
     author: author, 
     title: title, 
     score: score, 
     url: url, 
     certified: certified, 
     date: date 
    }); 
    alert("Story has been added!"); 
    } 

これは私が現在持っているものです。重複は検出されますが、検出されたかどうかにかかわらずデータベースに追加されます。チェックをforeachループの外側に移動しましたが、何も格納しません。

答えて

0
function CheckDupes(newUrl, author, title, score, url, certified, date){ 
    var stories = []; 
    var duped = "false"; 
    var leadsRef = database.ref().child("Authors").once("value").then(function(authorSnapshot) 
    { 
    authorSnapshot.forEach(function(child) { 
     stories.push(child.val()); 
     count++; 
     }); 
     for(var i = 0; i < stories.length; i++) 
     { 
     if(stories[i].url == newUrl) 
     { 
      duped = "true"; 
      alert("Story Exists!"); 
      return; 
      break; 
     } 
     } 
     if(duped == "false") 
     { 
     firebase.database().ref('Authors/').push({ 
      author: author, 
      title: title, 
      score: score, 
      url: url, 
      certified: certified, 
      date: date 
     }); 
     alert("Story has been added!"); 
     } 
    }); 

著者スナップショット機能内のすべてが必要です。愚かな間違い。

関連する問題