【发布时间】:2020-04-25 12:36:38
【问题描述】:
所以我试图返回一个对象数组。我想使用云功能列出谷歌云存储中特定存储桶中的所有对象。以下是我到目前为止所拥有的。它返回和未处理的承诺。
export const getAlbums = functions.https.onCall(() => {
return new Promise(async (resolve, reject) => {
//const bucket = admin.storage().bucket('kais-e4ba9.appspot.com')
const { Storage } = require("@google-cloud/storage");
const storage = new Storage();
const bucket = storage.bucket("bucketName");
resolve(bucket)
}).catch(err => {
console.log(err.message);
});
});
我写了一个类似的函数,它从 firebase firestore 返回一个文档数组。
export const getGenres = functions.https.onCall(() => {
//if (!context.auth) return {status: 'error', code: 401, message: 'Not signed in'}
return new Promise((resolve, reject) => {
const array = [{}];
const ref = admin.firestore().collection("genres");
// filter out inaActive genres
const query = ref.where("isActive", "==", true);
query.onSnapshot(querySnapshot => {
// Add genres into an array
const genres = querySnapshot.docs.map(documentSnapshot => {
return {
...documentSnapshot.data(),
key: documentSnapshot.id // required for FlatList
};
});
array.push(genres);
resolve(array);
});
});
});
这是您将其记录到控制台时返回的内容。当我调用云函数列出存储桶中的对象时,我想显示相同的结果。
【问题讨论】:
标签: typescript firebase async-await google-cloud-functions google-cloud-storage