2016-04-08 16 views
2

データのCSVをFirebaseにアップロードしようとしていますが、奇妙なエラーが発生しています。 JavaScriptに慣れていないので、問題の一部になる可能性があります。大量データをFirebaseにアップロード

704,STANDARD,PARC PARQUE,PR,NOT ACCEPTABLE,17.96,-66.22,"Parc Parque, PR" 
704,STANDARD,SECT LANAUSSE,PR,NOT ACCEPTABLE,17.96,-66.22,"Sect Lanausse, PR" 
704,STANDARD,URB EUGENE RICE,PR,NOT ACCEPTABLE,17.96,-66.22,"Urb Eugene Rice, PR" 
704,STANDARD,URB GONZALEZ,PR,NOT ACCEPTABLE,17.96,-66.22,"Urb Gonzalez, PR" 

私はドキュメントをアップロードしようとする派手なものを使用していなかったが、これは私が望むスタイルでアップロードされたすべてを取得する最も簡単な方法のように思えた:

この

は私がアップロードするデータです。

enter image description here

<!DOCTYPE html> 

<head> 
</head> 

<body> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script src="https://cdn.firebase.com/js/client/2.4.2/firebase.js"></script> 
<script type="text/javascript"> 
$(function() { 
    var myFirebaseRef = new Firebase("https://<firebasetag>.firebaseio.com/coordinates"); 

    var onComplete = function(error) { 
     if (error) { 
     console.log('Synchronization failed: ' + error); 
     } else { 
     console.log('Synchronization succeeded'); 
     } 
    }; 

    $("#upload").bind("click", function() { 
     var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.csv|.txt)$/; 
     if (regex.test($("#fileUpload").val().toLowerCase())) { 
      if (typeof (FileReader) != "undefined") { 
       var reader = new FileReader(); 
       reader.onload = function (e) { 
        var rows = e.target.result.split("\n"); 
        for (var i = 0; i < rows.length; i++) { 
         var cells = rows[i].split(","); 
         myFirebaseRef.set({ 
          [cells[0]]: { 
           zipcodetype: cells[1], 
           city: cells[2], 
           state: cells[3], 
           locationtype: cells[4], 
           latitude: cells[5], 
           longitude: cells[6], 
           locationttext: cells[7] 
          } 
         }, onComplete);      
        } 
       } 
       reader.readAsText($("#fileUpload")[0].files[0]); 
      } else { 
       alert("This browser does not support HTML5."); 
      } 
     } else { 
      alert("Please upload a valid CSV file."); 
     } 
    }); 
}); 
</script> 
<input type="file" id="fileUpload" /> 
<input type="button" id="upload" value="Upload" /> 
</div> 

</body> 

<html> 

これは、データベースに表示されていることをすべてです

これは、1行しかアップロードできませんが、「同期に成功しました」は常にコンソールに表示されます。

元のデータの長さが約90,000行であるため、各行をアップロードします。助けて?

+0

すべてのセル[0]が704に等しい場合、結果として何を期待していますか? –

+0

ドキュメント全体ではなく、1行だけをアップロードしています。 firebaseのアップロードをコンソールプリントに置き換えると、すべてのものがプリントされます。 firebase呼び出しを処理している方法について何かがこのコードで大量アップロードを防ぎます – booky99

+1

しかし、あなたは常に同じ項目を設定しているので、以前のものを上書きしてしまうので、704 === 704.私はfirebaseの男ではありませんが、代わりに:https://www.firebase.com/docs/web/api/firebase/push.html –

答えて

2

答えをコードで探している人は、これが作業モデルです。

<!DOCTYPE html> 

<head> 
</head> 

<body> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script src="https://cdn.firebase.com/js/client/2.4.2/firebase.js"></script> 
<script type="text/javascript"> 
$(function() { 
    var myFirebaseRef = new Firebase("https://<firebaseid>.firebaseio.com/coordinates"); 

    $("#upload").bind("click", function() { 
     var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.csv|.txt)$/; 
     if (regex.test($("#fileUpload").val().toLowerCase())) { 
      if (typeof (FileReader) != "undefined") { 
       var reader = new FileReader(); 
       reader.onload = function (e) { 
        var rows = e.target.result.split("\n"); 
        for (var i = 0; i < rows.length; i++) { 
         var cells = rows[i].split(","); 
         myFirebaseRef.push({ 
          [cells[0]]: { 
           zipcodetype: cells[1], 
           city: cells[2], 
           state: cells[3], 
           locationtype: cells[4], 
           latitude: cells[5], 
           longitude: cells[6], 
           locationttext: cells[7] 
          } 
         });      
        } 
       } 
       reader.readAsText($("#fileUpload")[0].files[0]); 
      } else { 
       alert("This browser does not support HTML5."); 
      } 
     } else { 
      alert("Please upload a valid CSV file."); 
     } 
    }); 
}); 
</script> 
<input type="file" id="fileUpload" /> 
<input type="button" id="upload" value="Upload" /> 
</div> 

</body> 

<html> 
関連する問題