簡體   English   中英

如何在 Firestore 中獲取引用數組?

[英]How to get an array of references in Firestore?

我的聊天集合在 Firestore 中具有以下結構:

chats: [
    chat1: { 
        jobs: [
            jobs/job1,
            jobs/job2,
            jobs/job4
        ]
    },
    chat2: { 
        jobs: [
            jobs/job2,
            jobs/job3
        ]
    }
]

如果我在chat1上,並且我有數據,那么我就有了對工作的引用數組。 我知道我有jobs/job1 job1 、 jobs/job2jobs/job4

我如何查詢和獲取所有這些作業的數據?

我可以這樣做: firestore.doc("jobs/job1").get()firestore.doc("jobs/job2").get()firestore.doc("jobs/job3").get()但是似乎很低效。

而且我不明白如何過濾firestore.collection("jobs")來給我想要的東西。

我在這里看到其他幾個問題問同樣的事情,但對於 Java,我無法將其翻譯成 JavaScript。

我可以這樣做: firestore.doc("jobs/job1").get() 和 firestore.doc("jobs/job2").get() 和 firestore.doc("jobs/job3").get() 但那似乎非常低效。

這正是您想要做的 - 您可以迭代列表並單獨獲取每個文檔。 Firestore 沒有提供一些優化的方法來使用網絡和移動 SDK在一個查詢中獲取多個文檔 - 僅使用自己的查詢獲取每個文檔就非常有效。 這種方法不會有任何問題。

另請參閱: Google Firestore - 如何在一次往返中通過多個 ID 獲取文檔?

 import { deleteDoc, collection, doc, query, getDocs, setDoc } from "firebase/firestore"

const q = query(collection(db, 'collection_name'))
const querySnap = await getDocs(q)
querySnap.forEach((doc) => {

        console.log("querySnap data", doc.data())
        // reference is accessed as doc.ref
        // if u wish u can push them to an array like myDocRefs.push(doc.ref)


        console.log("querySnap data", doc.ref)

    })

暫無
暫無

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

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