前提・実現したいこと
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
回答1件
あなたの回答
tips
プレビュー