如何捕获firebase搜索错误?

时间:2017-09-05 03:10:15

标签: javascript html firebase firebase-realtime-database

我有一个功能,用户输入并搜索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;

            });
        }
    })
}

我知道控制台会记录错误但是如何实现捕获错误并将其报告给用户?

1 个答案:

答案 0 :(得分:2)

如果数据库位置/引用不包含任何数据,它仍会触发value事件但空DataSnapshot(即snapshot.val()null)。您可以检查是否snapshot.val() === null,如果是,请让用户知道没有结果。

Reference值事件部分。