gpt4 book ai didi

javascript - Firebase firestore 如何在没有额外请求的情况下获取引用数据?

转载 作者:行者123 更新时间:2023-12-04 12:03:43 25 4
gpt4 key购买 nike

当我获取了我们可以在下面的屏幕截图中看到的地方时,我需要获取他们的数据,但它是对数据的引用,我可以在没有额外请求的情况下获取数据,例如 place.ref.data() ?如果我有 30 个位置,我应该提出 30 个请求,真的吗?我使用 react native 并且 ref 对象的类型为 DocumentReference https://rnfirebase.io/docs/v3.1.x/firestore/reference/DocumentReference

http://prntscr.com/hqf33h

最佳答案

您需要创建自己的填充方法。
这是我在收藏 eventSchedule 中制作的一个示例引用了 events ,然后我有一系列事件,我想从每个 eventSchedule 中获取事件......我就是这样做的:



...
const docRef = db.collection("eventSchedule").doc(dayName);

try {
const doc = await docRef.get();

if (doc && doc.exists) {
const eventSchedule = doc.data();

if (eventSchedule.activeEvents) {
const activeEventsRefs = eventSchedule.activeEvents;
eventSchedule.activeEvents = [];

await activeEventsRefs.reduce(
async (promise: any, event: any) => {
await promise;
const childDoc = await event.get();

if (childDoc) {
eventSchedule.activeEvents.push(childDoc.data());
}
},
Promise.resolve()
);
}
} else {
logMessage += `No docs found for eventSchedule for today - ${dayName}`;
}
} catch (error) {
logMessage += `Error getting document ${JSON.stringify(error)}`;
}

所以我用reducer来处理promise。它就像一个魅力,这是最简单的“手动”方式。
此外,如果您使用 React + Redux + Firebase,您可以查看库 react-redux-firebase 已经实现了很多东西,包括 populate也就是说,类似于 MongoDB 填充和 SQL 连接:
http://react-redux-firebase.com/docs/populate.html

关于javascript - Firebase firestore 如何在没有额外请求的情况下获取引用数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47921023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com