【问题标题】:Retrieving a Firebase storage image link via Cloud Function通过 Cloud Function 检索 Firebase 存储映像链接
【发布时间】:2018-03-29 10:25:42
【问题描述】:

如何通过云功能检索 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) {

    });
});

【问题讨论】:

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


【解决方案1】:

这让我很恼火,所以我会向正在寻找它的人直接解释解决方案。

1、使用firebase命令行安装GCD Storage:

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 文件夹中。 (或者其他只要改变上面代码中的路径即可)

就是这样。

【讨论】:

  • 出于安全原因,动态设置 url 的过期时间可能是个好主意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-23
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 2021-05-01
  • 2021-03-26
  • 1970-01-01
相关资源
最近更新 更多