Helenr
2022-12-22 12:03:47
即使if(doc.exists)工作完美,但如果我點擊的特定字母沒有數(shù)據(jù),它不會顯示控制臺消息 -console.log("There is a no song which starting with clickedletter");例如 - 如果我單擊按鈕“A”并成像有一首以字母“A”開頭的歌曲。此數(shù)據(jù)很快彈出,但是當我單擊 firestore 文檔中不存在數(shù)據(jù)的按鈕“T”時,控制臺消息未顯示。function getID(a){ console.log("youclicked", a.id); var id = a.id; //getting this "a" value from an alphabetic pagination bar---------- const clickedletter = a.getAttribute('value'); var Aristid = sessionStorage.getItem("getArtistID"); console.log("current artist ID "+ searchforid); db.collectionGroup('MP3_Songs').where("Idofartist", "==", Aristid).orderBy("Song_name").startAt(clickedletter).endAt(clickedletter +'\uf88ff').get().then((documentSnapshot) =>{ documentSnapshot.forEach(doc=> { if(doc.exists){ const data = doc.data(); console.log("start with clickedletter", data); gotdata.innerText = "Song name: " + data.Song_name; } else{ // this is the problem I got. This console log does not show if there is no data.--- console.log("There is a no song which starting with clickedletter"); } }) }).catch(function(error) { console.log("Error getting document:", error); });}
1 回答

智慧大石
TA貢獻1946條經(jīng)驗 獲得超3個贊
你應該添加一個檢查,看看整個結果集中是否沒有文檔,這是一個QuerySnapshot類型的對象。它有一個名為empty的屬性。
db.collectionGroup('MP3_Songs').where("Idofartist", "==", Aristid).orderBy("Song_name").startAt(clickedletter).endAt(clickedletter +'\uf88ff').get()
.then((querySnapshot) => {
if (querySnapshot.empty) {
// here, there are no documents in the query results
}
else {
// here, you can iterate the documents to find matches
querySnapshot.forEach(documentSnapshot => { ... })
添加回答
舉報
0/150
提交
取消