通过云功能检索Firebase存储图像链接

时间:2017-10-17 16:35:47

标签: node.js firebase firebase-storage google-cloud-functions

如何通过云功能检索Firebase中存储图像的下载链接?

我尝试过各种各样的变体,包括下一个:

exports.getImgs = functions.https.onRequest((req, res) => {
    var storage = require('@google-cloud/storage')();

var storageRef = storage.ref;

console.log(storageRef);

storageRef.child('users/user1/avatar.jpg').getDownloadURL().then(function(url) {

    });
});

1 个答案:

答案 0 :(得分:3)

这让我感到恼火,所以我会把解决方案直接解释给那些正在寻找它的人。

1,使用firebase命令行安装GCD存储:

npm install --save @google-cloud/storage

云功能代码:

const gcs = require('@google-cloud/storage')({keyFilename: 'service-account.json'});
const bucket = gcs.bucket('name-of-bucket.appspot.com');

const file = bucket.file('users/user1/avatar.jpg');
        return file.getSignedUrl({
          action: 'read',
          expires: '03-09-2491'
        }).then(signedUrls => {
            console.log('signed URL', signedUrls[0]); // this will contain the picture's url
    });

您可以在存储部分下的Firebase控制台中找到您的存储桶名称。

可以从这里创建和下载'service-account.json'文件:

https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk

并且应该存储在函数文件夹下的Firebase文件夹中。 (或其他只要更改上面代码中的路径)

就是这样。