質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

0回答

426閲覧

<firebase>realtime datebaseの情報をjquaryのデータテーブルに表示をしたい

yamamotototo

総合スコア10

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/10/04 08:36

編集2022/01/12 10:55

前提・実現したいこと

現在、こちらを参考に(https://qiita.com/nacasora/items/713919f7a56024f5c59f)掲示板を作ろうとしており、書き込まれた情報をjquaryのデータテーブルに表示しようと思っております。色々試したのですが、データテーブル内に書き込みを表示できずにいます。
現在の状態:
書き込みページ https://myapplication-d9e40.firebaseapp.com/
表示ページ https://myapplication-d9e40.firebaseapp.com/link/index.html

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

index.html

1<script> 2 $(document).ready(function () { 3 var url = "https://myapplication-d9e40.firebaseio.com/simplebbs/posts"; 4 // Jsonデータ取得 5 $.get(url, function (jsonData) { 6 7 }); 8}); 9 </script> 10 <script> 11 jQuery(function($){ 12 $("#foo-table").DataTable( { 13 data: data, 14 columns: [ 15 { data: 'content' }, 16 { data: 'date' }, 17 { data: 'locate0' }, 18 { data: 'locate1' }, 19 { data: 'locate2' }, 20 { data: 'name' }, 21 ] 22 }); 23}); 24 </script> 25</head> 26<body> 27 <div id ="replies"></div> 28 <table id="foo-table" class="table table-bordered"> 29 <thead> 30 <tr><th>名前</th> 31 <th>日付</th> 32 <th>内容</th> 33 <th>県</th> 34 <th>市</th> 35 <th>詳細</th></tr> 36 </thead> 37 <tbody> 38 </tbody> 39 </table> 40 41 42<script src="//cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script> 43<script src="//cdn.datatables.net/1.10.16/js/dataTables.bootstrap4.min.js"></script> 44</body> 45</html> 46

main.js

1const main = ()=> 2 firebase.database().ref('/simplebbs/posts').limitToLast(10).on('value', snapshot=>{ 3 const posts = snapshot.exists() ? snapshot.val() : {} 4 let html = '' 5 for(const [id, {name, content, date, locate0, locate1, locate2}] of Object.entries(posts).reverse()) 6 html += makeReply(id, name, content, date, locate0, locate1, locate2) 7 document.querySelector('#replies').innerHTML = html 8 }) 9 10const makeReply = (id, name, content, locate0, locate1, locate2, date) => `<div class="reply"> 11 <div class="head">Name: ${name} <span class="date">${date}</span></div> 12 <div class="content">${content}</div> 13 <div class="locate0">${locate0}</div> 14 <div class="locate1">${locate1}</div> 15 <div class="locate2">${locate2}</div> 16 <button class="delete" onclick="deleteReply('${id}')">delete</button> </div>` 17 18const postReply = ()=> post('/api/post', { 19 name: document.querySelector('#reply-name').value, 20 content: document.querySelector('#reply-body').value, 21 key: document.querySelector('#reply-key').value, 22 locate0: document.querySelector('#reply-locate0').value, 23 locate1: document.querySelector('#reply-locate1').value, 24 locate2: document.querySelector('#reply-locate2').value, 25 }).then(e=>{ document.querySelector('#reply-body').value='' }) 26 27const deleteReply = id => post('/api/delete', {id, key: prompt('key?') || ''}) 28 29const post = (path, jsonData) => fetch(path, { 30 method: 'POST', body: JSON.stringify(jsonData), 31 headers: {'Accept': 'application/json', 'Content-Type': 'application/json'}, 32 }) 33 34document.addEventListener('DOMContentLoaded', main) 35

index.js

1const functions = require('firebase-functions') 2const admin = require('firebase-admin') 3admin.initializeApp(functions.config().firebase) 4const db = admin.database() 5const rep = s=> s.replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\n/g,'<br>') 6 7exports.post = functions.https.onRequest((request, response)=>{ 8 const {name, content, key, locate0, locate1, locate2} = request.body 9 const date = new Date().toLocaleDateString() 10 db.ref('/simplebbs/posts').push({name:rep(name), content:rep(content), locate0:rep(locate0), locate1:rep(locate1), locate2:rep(locate2), date}) 11 .then(e=> db.ref(`/simplebbs/keys/${e.key}`).set(key)) 12 .then(e=> response.status(200).end()) 13}) 14 15exports.delete = functions.https.onRequest((request, response)=>{ 16 const {id, key} = request.body 17 db.ref(`/simplebbs/keys/${id}`).once('value').then(sKey=>{ 18 if(!sKey.exists() || sKey.val() !== key) 19 return response.status(400).send('invalid id or incorrect key').end() 20 db.ref(`/simplebbs/posts/${id}`).remove() 21 .then(e=> sKey.ref.remove()) 22 .then(e=> response.status(200).end()) 23 }) 24}) 25

試したこと

javascriptは初心者で検索できるところは試したのですがうまくいきません。

<div id ="replies"></div> が表示するテキストをデータテーブルに表示するにはどうしたらいいのでしょうか。また、別の方法がありましたら教えてください。よろしくお願いいたします。

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問