And*_*tik 6 javascript firebase react-native google-cloud-firestore
当我获取了我们可以在下面的屏幕截图中看到的地方时,我需要获取他们的数据,但它是对数据的引用,我可以在没有额外请求的情况下获取数据,例如place.ref.data()?如果我有 30 个位置,我应该提出 30 个请求,真的吗?我使用 react native 并且 ref 对象的类型为 DocumentReference https://rnfirebase.io/docs/v3.1.x/firestore/reference/DocumentReference
您需要创建自己的填充方法。
这是我制作的一个示例,其中我的集合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)}`;
}
Run Code Online (Sandbox Code Playgroud)
所以我使用减速器来处理承诺。它的工作方式就像一个魅力,这是执行此操作的最简单的“手动”方式。
另外,如果你使用 React + Redux + Firebase,你可以检查库react-redux-firebase,它已经实现了很多东西populate,包括类似于 MongoDB 填充和 SQL Join:
http://react-redux- firebase.com/docs/populate.html
| 归档时间: |
|
| 查看次数: |
4737 次 |
| 最近记录: |