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

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

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

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

データベース

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

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1211閲覧

JavaScriptの関数を利用してfirebase databaseへデータを挿入したいが、firebase databaseへのアクセス方法がわからず、困っています。

JinGoda

総合スコア20

Firebase

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

データベース

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

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/05/14 13:51

編集2020/05/14 14:32

前提・実現したいこと

firebase databaseにユーザー情報を登録したいと思い、HTMLのボタンを押すと、JSがformの値を読み取ってデータベースに入れるという関数を実行したいのですが、データベース操作でエラーが発生しました。

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

Uncaught ReferenceError: require is not defined

該当のソースコード

html

1 <template id="userreg.html"> 2 <ons-page> 3 <form> 4 <input id="username" type="text"> 5 <input id="email" type="text"> 6 <input type="button" value="新規登録" onclick="onButtonClick()"> 7 </form> 8 </ons-page> 9 </template> 10 <!-- The core Firebase JS SDK is always required and must be listed first --> 11 <script src="https://www.gstatic.com/firebasejs/7.14.3/firebase-app.js"></script> 12 13 <!-- TODO: Add SDKs for Firebase products that you want to use 14 https://firebase.google.com/docs/web/setup#available-libraries --> 15 <script src="https://www.gstatic.com/firebasejs/7.14.3/firebase-analytics.js"></script> 16 <script src="https://www.gstatic.com/firebasejs/7.14.3/firebase-auth.js"></script> 17 <script src="https://www.gstatic.com/firebasejs/7.14.3/firebase-database.js"></script> 18 19 <script> 20 // Your web app's Firebase configuration 21 var firebaseConfig = { 22 apiKey: "AIzaSyCOnYUzi7EE9RAsKvZHYmVPLMFYb-8mypI", 23 authDomain: "web-assignment-83658.firebaseapp.com", 24 databaseURL: "https://web-assignment-83658.firebaseio.com", 25 projectId: "web-assignment-83658", 26 storageBucket: "web-assignment-83658.appspot.com", 27 messagingSenderId: "756570131771", 28 appId: "1:756570131771:web:d1a6ecf16c3a2d57023b1e", 29 measurementId: "G-W64KNL5WJ8" 30 }; 31 // Initialize Firebase 32 firebase.initializeApp(firebaseConfig); 33 firebase.analytics(); 34 </script> 35 <script src="auth.js"></script> 36</body> 37</html>

JavaScript

1var admin = require("firebase-admin"); 2 3// Fetch the service account key JSON file contents 4var serviceAccount = require("../web-assignment-83658-firebase-adminsdk-xny6w-811cfe9648.json"); 5 6// Initialize the app with a service account, granting admin privileges 7admin.initializeApp({ 8 credential: admin.credential.cert(serviceAccount), 9 databaseURL: "https://web-assignment-83658.firebaseio.com" 10 }); 11 12var db = admin.database(); 13var ref = db.ref('/') 14C:\Users\gojin\Documents\webassignment\pages\public\home.html 15function onButtonClick() { 16 var userelement = document.getElementById('username'); 17 var emailelement = document.getElementById('email'); 18 var user = userelement.value; 19 var email = emailelement.value; 20 ref.set({ 21 user: { 22 username: user, 23 useremail: email 24 } 25 }); 26 console.log(user); 27 console.log(emal) 28};

試したこと

1.requireを含む部分のみを削除して実行→"Uncaught ReferenceError: admin is not defined"

2.requireを含む部分を削除してadmin.initializeAppをfirebase.admin.initializeAppとして実行→"Uncaught TypeError: Cannot read property 'initializeApp' of undefined"

3.initializeAppの部分も消す(adminが消える)→データベースで書き込み不可のルールにはじかれて実行不可。

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

バックエンドをfirebaseで構築
フロントはHTMl, CSS, JavaScriptで構築。フレームワークはONSENUIを使用。
IDEはVSCode

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

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

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

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

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

m.ts10806

2020/05/14 14:01

タイトルがタグにある単語を並べただけで要件が何もありません。タイトルは要件を記載してください。 https://teratail.com/help/question-tips#questionTips3-1 また、2つ目のコードブロックができていませんので、調整してください。
JinGoda

2020/05/14 14:08

すみません。修正いたしました。
m.ts10806

2020/05/14 14:18

こちらの伝え方が悪かったかもしれないですが、「タグがある」ということは「タイトルにわざわざ書かなくても伝わる」という意味です。その分、要件を書くことに振ってください。
JinGoda

2020/05/14 14:33

たしかにそうですね...すみません、編集しなおしました。 まだ少し抽象的ではあるのですが、自分の思っていることが伝わればうれしいです。
hoshi-takanori

2020/05/15 00:38 編集

require is not defined というのは JavaScript の実行方法 (というか、モジュールの読み込み) に関するエラーで、データベース操作は関係ありません。require はブラウザの JavaScript では直接は使えないので、webpack などを使ってモジュールのバンドル化をする必要があります。 https://qiita.com/kamykn/items/45fb4690ace32216ca25
JinGoda

2020/05/15 01:13

HTMLにCDNで読み込んでいるので必要が無いという情報を見つけて削除したのですが、「試したこと」にも書いたように他のエラーが出てしまって詰まっていました。 HTMLで読み込んでいてもモジュールのバンドル化をして実行するのが正しいですか?
guest

回答1

0

自己解決

adminを含むコードを削除し、db, refの宣言とonButtonClick関数を残しました。
作成しているホームページでログインをしてこの関数を実行したところ、思っていたとおりの挙動をしました。

投稿2020/05/15 04:40

JinGoda

総合スコア20

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問