【发布时间】:2018-12-20 10:18:19
【问题描述】:
我有这个函数,它接受 DataSnapshot 作为参数。
我目前的工作是,我仍然必须事先知道我的 Firestore 文档上有哪些键。
这真的不够高效,我想找出一种方法来实际检索所有引用数据类型的字段,而无需事先知道键。这将使Promise 更有用,例如,您可以传入任何DataSnapshot,它将解析为附加了引用文档的文档。
getDenormalizedFields = (data: Object): Promise<any> => {
const denormalizeKeys = ['refOne', 'refTwo', 'refThree'];
const denormalizationPromise = new Promise(async (resolve: Function) => {
const denormalizations = await denormalizeKeys.map(
async (key: string) => {
const field = await data[key].get();
const fieldData = await field.data();
return { [key]: fieldData };
},
);
const promisedDenormalizations = await Promise.all(denormalizations);
const denormalized = Object.assign({}, ...promisedDenormalizations);
resolve(denormalized);
});
return denormalizationPromise;
};
【问题讨论】:
标签: javascript firebase reference google-cloud-firestore denormalization