[英]Query documents in firestore from an array of ID's
我想知道如何從 ID 數組的 firestore 集合中查詢文檔? 我只想要集合中 ID 數組中的文檔。 我查看了另一個答案並認為我的方法是正確的,但是,我收到了一個錯誤。
(node:15105) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'data' of undefined
> at /Users/username/SideProjects/projectname/functions/index.js:40:38
> at processTicksAndRejections (internal/process/task_queues.js:95:5)
發生錯誤是因為 function 未從該 ID 數組中找到集合中的任何文檔。 但是,我仔細檢查了數據庫,知道集合中有文檔的 ID 來自數組。
const admin = require('firebase-admin')
....
let feedItems = db.collection(feedItemsCollection)
feedItemsList = feedItems.where(admin.firestore.FieldPath.documentId(), 'in', ['HPOorsSnbHpTYwwXxfWw']).get().then(snapshot2 => {
console.log(admin.firestore.FieldPath.documentId())
console.log("In feed Items")
//console.log(feedItemIds)
console.log(snapshot2[0])
//error happens on this line because snapshot2[0] returns undefined
console.log(snapshot2[0].data())
})
Snapshot2[0] 返回未定義,我假設這意味着沒有返回數據。 我認為我沒有正確調用 documentId(),但不知道修復方法。
您的代碼“可能”有兩個問題。 遵循這兩點以確保一切正常
snapshot2
中的數據可能為empty
您首先必須修復您的代碼以測試該理論。 您沒有正確訪問snapshot2
中的數據。 要做到這一點,一種方法是這樣的:
// `snapshot2` will have a `docs` property that you can leverage
const snapshot2Data = snapshot2.docs.map((doc) => doc.data());
.documentId()
可能沒有做它應該做的事(如你所說) 要測試這個理論,請檢查snapshot2Data
是否為空。 跑步:
console.log(snapshot2Data); // what do you get ?
如果不是,則它不為空並且您已取回數據,那么一切就緒。 無事可做
如果是,則為空,然后運行:
console.log(admin.firestore.FieldPath.documentId()); // what do you get ?
你找回string
了嗎? 如果不是,那么我們還有另一個問題。 您還需要仔細查看您的firebase-admin
設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.