提问者:小点点

从可调用的https云函数上传图像到Firebase存储


我想上传一个图像到Firebase存储从一个可调用的https云函数,但我不知道如何做。

const functions = require('firebase-functions');

const admin = require('firebase-admin');

admin.initializeApp();

const storageBucket = admin.storage().bucket('gs://xxxxx.appspot.com');

exports.test_upload = functions.https.onRequest(async (request, response) => {

    var base64Img = "data:image/jpeg;base64,/9j/4AAQSkZJRg...AoNDQoIC";

    let filename = new Date().getTime() + '.jpg';

    await storageRef.child('/destination/'+filename).putString(base64Img, 'data_url').then(function(snapshot) {

        snapshot.ref.getDownloadURL().then(async (url) => { 
            
            console.log(url);

        });

    });


    response.status(200).send("Done!");

});

你能帮我理解吗,怎么做?

太谢谢你了


共1个答案

匿名用户

您似乎试图在云函数代码中使用Firebase JavaScript SDK进行云存储,这是不可能的。 用于云存储的Firebase JavaScript SDK仅可用于web客户机。

在服务器端环境中,您需要使用Firebase Admin SDK与云存储交互。 在本例中,您将使用预先初始化的Node.js SDK版本进行云存储。

因此,要了解如何在云函数中上传图像,我将搜索Node.js SDK,用于云存储上传文件。 这导致:

  • 如何使用Node.js在firebase中存储文件以便上传文件
  • 从使用Firebase云函数上载的文件中获取下载URL以获取签名URL