我正在写一个firebase云函数,记录最近上传文件的下载链接到实时数据库:
exports.recordImage = functions.storage.object().onFinalize((object) => {
});
“object”允许我访问两个变量“selfLink”和“mediaLink”,但在浏览器中输入这两个变量时,它们都返回以下内容:
Anonymous caller does not have storage.objects.get access to ... {filename}
所以,它们不是公共链接。我怎样才能在这个触发函数中获得公共下载链接?
2条答案
按热度按时间1tu0hz3e1#
必须使用异步
getSignedUrl()
方法,参见Cloud Storage Node.js库文档:https://cloud.google.com/nodejs/docs/reference/storage/2.0.x/File#getSignedUrl网站。所以下面的代码应该可以做到这一点:
请注意,为了使用
getSignedUrl()
方法,您需要使用专用服务帐户的凭据初始化Admin SDK,请参阅此SO问答firebase function get download url after successfully save image to firebase cloud storage。bn31dyow2#
这是你的代码可能看起来像: