我使用firebase-admin和firebase-functions在Firebase Storage中上传文件。
我在Storage中有这些规则:
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不是一个函数
。如何使用firebase-admin获取文件的公共URL?
@google-cloud/storage
。由admin.storage().bucket()
返回的bucket对象来自该包。因此,您无需重新初始化GCS包。只要您已经使用服务帐号初始化了Admin SDK,就应该能够在从API获取的文件引用上调用getSignedUrl()
。 - Hiranya Jayathilaka