【问题标题】:use firebase Storage with Admin sdk node.js将 firebase 存储与 Admin sdk node.js 一起使用
【发布时间】:2019-10-23 23:42:14
【问题描述】:

我想通过 admin SDK 使用 firebase 存储,因为使用 gcd 需要付费帐户。

我尝试了很多在没有付费帐户的情况下使用 gcd,但除了使用 gcd 存储很复杂之外,我没有找到其他方法。

我试图在 firebase 文档中找到答案,但提到的函数文档根本不起作用。 所以我决定发布这个问题的答案,以便它可以帮助其他人

【问题讨论】:

    标签: node.js firebase firebase-storage firebase-admin


    【解决方案1】:

    毕竟,我找到了一种使用 admin SDK 来使用 firebase 存储上传和下载文件的方法

    首先,你应该安装 firebase-admin

    npm install --save firebase-admin

    我不记得你是否必须安装@firebase/storage

    让我们来看看代码 首先你必须发起

    var admin = require("firebase-admin");
    var firebase = require("firebase");
    var serviceAccount = require("path/to/your/private/ket.json");
    

    私钥是从 firebaseConsole 生成的

    firebaseConsole->项目设置->服务帐号->生成私钥

    现在你可以使用 firebase 存储桶了

    admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    storageBucket: "{storageBucket}"
    });
    var bucket = admin.storage().bucket();
    

    您可以在{上传文件}按钮旁边找到 storageBucket

    现在让我们来看看如何将图片上传到我的名为 pic 的文件夹中'您可以使用它而无需创建任何子文件夹'

    uploadPic (picName, Picture) => {
    
    db.bucket.upload(Picture.path, {
        destination: "pic/" + picName,
        metadata: {
            contentType: Picture.mimetype,
            cacheControl: 'public, max-age=31536000'
        }
    }, (err, file) => {
        if (err) {
            console.log(err);
        } else {
            console.log('done');
        }
        return;
    });
    };
    

    您需要将所有文件发送到此函数或图片的路径和 mimetype 有必要的信息,您还需要发送 id 所以如果您搜索它以便找到它。

    此代码用于获取图片URL

    let baseUrl = 'https://firebasestorage.googleapis.com/v0/b/'+'{storageBucket }'+'/o/'+'{folderName}'+'%2F';
    
    getPicUrl (pictureName) => {
    db.bucket.getFiles({ prefix: 'pic/' + pictureName}).then((file) => {
        var token = file[0][0].metadata.metadata.firebaseStorageDownloadTokens;
        baseUrl = baseUrl + pictureName+ '?alt=media&token=' + token;
        return;
    }).catch((err) => {
        console.log(err.message);
    });
    return baseUrl;
    };
    

    此函数将返回下载 URL,您可以使用它来显示此文件或下载它

    我所知道的我试图以最好的方式解释它希望你喜欢它

    祝你好运:)

    【讨论】:

    • 你能分享一下 github 什么的吗?我正在寻找这个并试图适应 next.js
    • 这是我的 github 链接,如果您仍然没有找到解决问题的方法 github.com/kerolosFawzy/Gp 如果您仍然没有找到解决方案,请给我留言
    猜你喜欢
    • 2018-07-04
    • 2019-10-24
    • 1970-01-01
    • 2019-08-02
    • 2018-05-23
    • 2021-07-30
    • 1970-01-01
    • 2020-11-21
    • 2019-01-10
    相关资源
    最近更新 更多