FirebaseにJSONとして保存されたデータを持っています。私はそのデータから視覚化を作成するためにD3.jsを使用したいと思います。 D3での私の経験では、常に特定のファイルにロードするようにされています:FirebaseのデータにアクセスしてD3.jsで視覚化するにはどうすればよいですか?
d3.csv ('csv-file-here.csv', callbackfunction);
OR
d3.json('json-file-here.json', callbackfunction);
をしかし、今、私はD3がFirebaseから「アクセス」または「プル」する必要があることを、私はよどのようにそれを行うには少し失われた。どんな助けでも大歓迎です。
編集:
わかりましたので、私は、この発見:FirebaseとD3がお互いに話をすることができたhttps://github.com/mattdodge/D3Fireを。しかし、私は指示に従ってみたが、まだ何もできません。その "Hello World"とconsole.log
ステートメントは何も出力しません。
d3.select('svg').firebase(
'https://mydatabaseURL.com',
{
createFunc : function(newData) {
// callback when data is added
console.log(newData.val());
d3.select("body").append("span").text("Hello, world!");
return this.append('text').text(newData.val());
},
updateFunc : function(changedData) {
// data was changed, let's change the text
this.text(changedData.val());
}
}
);
編集2:
私は上記のプラグインなしでそれをしなかった場合は、何もどちらか...
var ref = firebase.database().ref();
ref.on('value', function(dataSnapshot){
console.log(dataSnapshot.val());
});
編集3プリントアウトされていない:
マイ私のデータベースセキュリティルールに問題がありました。私はこれを元に戻し、Firebaseとの接続を確立し、スナップショットを取得してデータベースをオブジェクト配列として出力することができました。さて、実際にデータをD3にロードする方法を理解する必要があります。私はd3.json(dataSnapshot.val(), function(rawdata){})
試みたが、それはそれをロードしませんでした
編集4:
さて、D3のドキュメントがd3.json()
は、JSONの要求を行うことができる場所のURLをとることを示しているように見えます。したがって、ローカルフォルダにある場合は、data.json
で十分です。 Firebaseから取得したいので、FirebaseをJSONとしてロードする方法を見つける必要があります。だから私は試しました
d3.json('https://mydatabasename.firebaseio.com/.json', update);
まだ動作しませんでした。生データを印刷すると私にはundefined
が与えられます。
コンソールですべてのエラーを持っていますか? Firebaseのどのバージョンを使用していますか? 2回目の編集で、バージョン3が示唆されます。[Firebaseを初期化しましたか](https://firebase.google.com/docs/web/setup#add_firebase_to_your_app)ですか?また、D3Fireは長時間更新されていないため、最新のFirebase APIでは動作しません。 – cartant
@cartantはい、私はFirebaseを初期化しました。電子メール/パスワード認証も同様に動作しています。はい、Firebaseバージョン3以降、コンソールにエラーはありません。D3Fireが動作しない場合、私の "Edit 2"では 'console.log'ステートメントをどこにでも置いて、' ref.on'ステートメントを実行するようですが、何も出力しません。 – noblerare