簡體   English   中英

如何使用 Javascript 讀取具有自動生成的文檔 ID 的 Firebase 文檔

[英]How to read Firebase document with auto generated document id using Javascript

我正在嘗試使用填充了文檔 ID 的變量從 Firebase 集合中讀取單個文檔。 文檔 id 正確且文檔存在於集合中。 當我使用變量啟動代碼時,似乎讀取成功,但我感興趣的字段中沒有數據。(參見下面的代碼)。

 db.collection("Pswref").doc(clpdocid).get().then((docRef) => { const SingleRecord = docRef.data(); console.log('yyyyyy - Great document found using fixed id for doc id ', docRef.data()); console.log('yyyyyy - Title from database = >', SingleRecord.title); console.log('yyyyyy - Doc id ', clpdocid); }).catch((error) => { console.error('yyyyyy - Error getting document ', error); });

但是,當我在 get 語句中對文檔 ID 進行硬編碼時,一切都很好,我可以訪問所需的信息。 (見下面的代碼)。

 db.collection("Pswref").doc("NoA6EBijcgsBIIOZCsWC").get().then((docRef) => { const SingleRecord = docRef.data(); console.log('xxxxxx - Great document found using fixed id for doc id ',docRef.data()); console.log('xxxxxx - Title from database = >', SingleRecord.title); }).catch((error) => { console.error('xxxxxx - Error getting document ', error); });

該圖顯示了根據腳本的 console.log output。 注意:您會注意到,上述查詢與所使用的 doc id 引用完全相同,並且根據通過控制台生成的 output,我得到了不同的結果。

在此處輸入圖像描述

有人可以幫助我了解為什么會發生這種情況以及解決方案可能是什么嗎?

我已經對給出錯誤的行進行了注釋並重新運行,以便控制台中的 output 可以顯示clpdocid實際上已正確填充。(請參見下面的片段)然后在新圖像上顯示 output。

 db.collection("Pswref").doc(clpdocid).get().then((docRef) => { const SingleRecord = docRef.data(); console.log('yyyyyy - Great document found using fixed id for doc id ', docRef.data()); //console.log('yyyyyy - Title from database = >', SingleRecord.title); console.log('yyyyyy - Doc id ', clpdocid); }).catch((error) => { console.error('yyyyyy - Error getting document ', error); });

在此處輸入圖像描述

在此處輸入圖像描述

當然, clpdocid實際上並不包含您期望的值。 您從docRer.data()打印的undefined證明您請求的文檔不存在,因為data()的 API 文檔說如果找不到文檔,則期望未定義。

嘗試在查詢之前記錄clpdocid的值,以確保您擁有所需的文檔 ID。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM