我如何捕获Firebase搜索错误?
问题描述:
我有一个功能,需要用户输入并搜索Firebase数据库。我想要做的就是捕捉任何错误,尤其是当它们与用户输入不匹配时,我想显示为“输入的数字未找到匹配项”。我如何捕获Firebase搜索错误?
这功能我使用
function searchNSN(data){
var container = document.getElementById('searchresult');
container.innerHTML = '';
var FindNSN = document.getElementById('searchinput').value;
firebase.auth().onAuthStateChanged((user) => {
if (user) {
var BusinessesId = firebase.auth().currentUser.uid;
return database.ref('/Businesses/' + BusinessesId + '/Inventory/' + FindNSN).once('value').then(function(snapshot) {
var Results = snapshot.val();
var Productkey = Object.keys(snapshot.val())[0];
var ResultCard = `
<h1 class="searchtitle first">${Results.ProductName}</h1>
<p class="searchtext">${Results.ProductDescription}<span class="class">${Results.NSN}</span></p>
<p class="showproductdetail" onclick="SHOWSEARCHDETAIL();"><a href> Show Product Details </a href></p>
`
container.innerHTML += ResultCard;
});
}
})
}
我知道控制台记录错误,但我该如何实现追赶的错误,并报告给用户?
答
如果数据库的位置/参考不包含任何数据,它仍然会触发一个事件value
但用空DataSnapshot
(即snapshot.val()
是null
)。你可以检查是否snapshot.val() === null
,如果有,请让用户知道没有结果。
Reference,值事件部分。