在Node中使用firebase-admin将火上传到Firebase存储

时间:2019-12-18 10:41:41

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

我需要使用firebase-admin将文件从Node脚本上传到Firebase存储。

这是我在浏览器中执行的操作:(工作)

// THIS IS INSIDE A FUNCTION
const storageRef = firebase.storage().ref('my-images/' + fileName);
const uploadTask = storageRef.put(file,metadata);

这是我尝试在“节点”脚本中执行的操作:

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

// THIS IS INSIDE A FUNCTION
const storageRef = admin.storage().ref('my-images/' + fileName);
const uploadTask = storageRef.put(file,metadata);

我收到错误:

TypeError: admin.storage(...).ref is not a function

我也尝试过:

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  storageBucket: "MY_BUCKET.appspot.com"
});

// THIS IS INSIDE A FUNCTION
const storageRef = admin.storage().bucket().ref('my-images/' + fileName);
const uploadTask = storageRef.put(file,metadata);

我收到错误:

TypeError: admin.storage(...).bucket(...).ref is not a function

问题

我需要将文件保存在my-images文件夹中的默认存储桶中。正确的做法是什么?

1 个答案:

答案 0 :(得分:1)

Google Cloud Storage Node.js Client相比,您需要使用与JavaScript SDK相比不同的方法。

更准确地说,您需要使用upload()Bucket方法,如下所示:

bucket.upload('my-images/' + fileName).then(function(data) {
  const file = data[0];
});

您将在文档中找到更多示例(上面的链接)