我使用firebase-admin和firebase-functions在Firebase存储中上传文件 .
我在存储中有这个规则:
service firebase.storage {
match /b/{bucket}/o {
match /images {
allow read;
allow write: if false;
}
}
}
我希望使用以下代码获取公共URL:
const config = functions.config().firebase;
const firebase = admin.initializeApp(config);
const bucketRef = firebase.storage();
server.post('/upload', async (req, res) => {
// UPLOAD FILE
await stream.on('finish', async () => {
const fileUrl = bucketRef
.child(`images/${fileName}`)
.getDownloadUrl()
.getResult();
return res.status(200).send(fileUrl);
});
});
但我有这个错误 .child is not a function
. 如何使用firebase-admin获取文件的公共URL?
1 回答
从using Cloud Storage documentation上的示例应用程序代码,您应该能够在上载成功后实现以下代码以获取公共下载URL:
或者,如果您需要可公开访问的下载URL,请参阅this answer,建议使用Cloud Storage NPM模块中的getSignedUrl(),因为Admin SDK不直接支持此功能: