【发布时间】:2021-08-04 00:58:52
【问题描述】:
我有一个 firestore 数据库和一个网站,您可以在其中查看数据库数据并向其中添加数据。问题是不知道怎么触发当前行文档名删除。
这就是表格的样子(在它的末端我有那个小垃圾桶,当你按下它时,我希望它从数据库中删除这一行)
这是显示数据库数据的 JavaScript 代码:
db.collection("flights").get().then((snapshot) =>{
snapshot.docs.forEach(doc => {
let data = doc.data()
//*Calculating block time
var blocktimeHour = data.landing.slice(0,2) - data.takeoff.slice(0, 2);
var blocktimeMinute = data.landing.slice(3, 5) - data.takeoff.slice(3, 5);
//*Setting the blocktime format to HH:MM
if(blocktimeHour < 10){
blocktimeHour = `0${blocktimeHour}`
}
if(blocktimeMinute < 10){
blocktimeMinute = `0${blocktimeMinute}`
}
//*Identifying the current document
//*Displaying the data on the page
const list = document.querySelector("#gridcontainer");
const row = document.createElement("tr");
row.innerHTML += `
<td class="grid-item">${(data.date)}</td>
<td class="grid-item">${(data.pilot)}</td>
<td class="grid-item">${(data.copilot)}</td>
<td class="grid-item">${(data.takeoff)}</td>
<td class="grid-item">${(data.landing)}</td>
<td class="grid-item">${blocktimeHour}:${blocktimeMinute}</td>
<td class="grid-item">${(data.type)}</td>
<td class="grid-item">${(data.comment)}</td>
<td class="grid-item"><button onclick="deleteFlight();"><img src="/Images/deleteButton.svg" ><img></button></td>
`;
list.appendChild(row);
});
})
我想通过那个按钮触发一个函数,并且我想将当前行的文档名称参数传递给它,这样我就可以指定要删除哪个文档。
这是删除函数:
function deleteFlight(){
firebase.firestore()
.collection("flights")
.doc(thisDoc)
.delete()
.then(() => console.log("Document deleted")) // Document deleted
.catch((error) => console.error("Error deleting document", error));
}
我尝试了很多东西,但我不知道该怎么做
【问题讨论】:
-
在你的函数deleteFlight里面你是如何定义
thisDoc的?在我看来,您需要使用一些查询选择器来定位可能使用来自 onClick 处理程序的事件单击的行,然后使用该数据来计算对thisDoc的引用
标签: javascript google-cloud-firestore