首页 > 解决方案 > 我不断收到错误 firebase.database is not a function

问题描述

我正在尝试将我在投资组合网站中的联系表格链接到 firebase 并在我的控制台中继续获取(firebase.database 不是函数)

这是用于网络的,使用纯 javascript

var firebaseConfig = {
  apiKey: "AIzaSyCzX3r8CFw84WSBuCSXR1fWM_hDrwtGMSs",
  authDomain: "portfolio-4c243.firebaseapp.com",
  databaseURL: "https://portfolio-4c243.firebaseio.com",
  projectId: "portfolio-4c243",
  storageBucket: "",
  messagingSenderId: "745737502175",
  appId: "1:745737502175:web:a26e5b0baa3769c9"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);


var messagesRef = firebase.database().ref('messages');


document.getElementById('contactForm').addEventListener('submit', submitForm);

function submitForm(e) {
  e.preventDefault();

  var name = getInputVal('name');
  var email = getInputVal('email');
  var message = getInputVal('message');

  saveMessage(name, email, message);


}

// Function get value
function getInputVal(id) {
  return document.getElementById(id).value;
}

//Save
function saveMessage(name, email, message) {
  var newMessageRef = messagesRef.push();
  newMessageRef.set({
    name: name,
    email: email,
    message: message
  })
}

标签: javascriptfirebasefirebase-realtime-databasecontact-form

解决方案


此错误非常常见,因为您没有config正确配置对象或缺少使用该特定功能所需的脚本标记。在您的情况下,该config对象看起来不错,因此您必须在页面中添加此脚本

<script src="https://www.gstatic.com/firebasejs/6.2.4/firebase-database.js"></script>

但请注意,此脚本只能在 firebase 应用程序的核心脚本之后添加

<script src="https://www.gstatic.com/firebasejs/6.2.4/firebase-app.js"></script>

并且对于将来,如果您想使用Firebase中的任何其他服务,例如Firestore左右,只需确保您在其中有特定的脚本标签(config正确设置了对象)。


推荐阅读