未捕获的类型错误: messagesRef.push不是一个函数。

var firestore =  firebase.firestore();

var messagesRef = firestore.collection("BookingData");


//listen for submit
document.getElementById('bookingForm').addEventListener('submit',submitForm);

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

 //get values
 var email = getInputVal('email');
 var packageFields = getInputVal('packageFields');
 var name = getInputVal('name');
 var phone = getInputVal('phone');
 var date = getInputVal('date');

 //save messages
 saveMessage(email, packageFields, name, phone, date);

}

// function to get form values

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

//save messages

function saveMessage(email, packageFields, name, phone, date) {
 var newMessagesRef = messagesRef.push();
 newMessagesRef.set({
   email:email,
   packageFields:packageFields,
   name:name,
   phone:phone,
   date:date
 });
}

但它给出的错误。

Uncaught TypeError: messagesRef.push is not a function at saveMessage (bookingSubmit.js:48) at HTMLDivElement.submitForm (bookingSubmit.js:35) saveMessage @ bookingSubmit.js:48 submitForm @ bookingSubmit.js:35。

为什么会发生这种情况,我该如何解决?

请检查任何其他类型的错误。

并确保该代码应该按照预期的工作。它不断地给出错误,现在我已经受够了。

解决方案:

你正试图在集合中添加新的文档,称为 “BookingData”; /listen for submit document.getElementById(bookingForm).addEventListener(‘submit’,submitForm); … BookingData.但在添加数据时,你使用的方法是 push() 与…有关 firebase Realtime Database.但是变量 messageRef 伴随 firebase firestore 而没有一个方法叫做 push() 与firestore变量。

var firestore =  firebase.firestore();

var messagesRef = firestore.collection("BookingData");


//listen for submit
document.getElementById('bookingForm').addEventListener('submit',submitForm);

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

 //get values
var email = getInputVal('email');
var packageFields = getInputVal('packageFields');
var name = getInputVal('name');
var phone = getInputVal('phone');
var date = getInputVal('date');

}

// function to get form values

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

//save messages

function saveMessage(email, packageFields, name, phone, date) {

  messageRef.add({
   email:email,
   packageFields:packageFields,
   name:name,
   phone:phone,
   date:date
   }).then(function(docRef) {
console.log("Document written with ID: ", docRef.id);
})
 .catch(function(error) {
  console.error("Error adding document: ", error);
});

  }

给TA打赏
共{{data.count}}人
人已打赏
未分类

潘达斯:如何在一个范围之间找到值的索引?

2022-11-11 0:23:15

未分类

下一个项目在 foreach SMARTY

2022-11-11 0:23:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索