2017-09-05 83 views
1

我有一個功能,需要用戶輸入並搜索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; 

      }); 
     } 
    }) 
} 

我知道控制檯記錄錯誤,但我該如何實現追趕的錯誤,並報告給用戶?

回答

2

如果數據庫的位置/參考不包含任何數據,它仍然會觸發一個事件value但用空DataSnapshot(即snapshot.val()null)。你可以檢查是否snapshot.val() === null,如果有,請讓用戶知道沒有結果。

Reference,值事件部分。