gpt4 book ai didi

node.js - 使用node.js firebase.storage is not a function错误

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:06 26 4
gpt4 key购买 nike

我想将图像上传到 Firebase 存储,该服务仍在运行且未弃用,我不想使用 google-cloud,我应该如何解决这个问题?

所有其他帖子都建议使用 gcloud

我能够使用实时数据库,但存储方面运气不佳

var firebase = require('firebase  ');
app.use(express.static('public'))

var config = {
apiKey: "xxxxxxxx",
authDomain: "xxxxxxxx",
databaseURL: "xxxxxxxx",
projectId: "xxxxxxxx",
storageBucket: "xxxxxxxx",
messagingSenderId: "xxxxxxxx",
};
firebase.initializeApp(config);

app.get('/home', (request, response) => {
var storageRef = firebase.storage().ref('/master/'+file.name);
fs.readFile('public/test.png', function(err, data) {
if (err) throw err;
storageRef.put(data);
});
})

TypeError: firebase.storage is not a function

最佳答案

您说您不想使用 Google Cloud,但我有一些坏消息要告诉您,这就是 Firebase 存储的全部内容 - 只是 Google Cloud 存储桶的包装。如果您使用 Firebase 存储,您将使用 Google Cloud 存储。

就代码而言,您似乎混淆了不同的 Firebase 库。您正在使用 Javascript SDK for the FRONT END ...但是您有这个问题标记为node.js - 如果您尝试从服务器执行操作,则需要使用 Javascript SDK (called firebase-admin) for Node.js

您说您已经找到了解释如何与 Google Cloud 交互的其他答案,我不会编写完整的分步指南,而只是向在未来朝着正确的方向发展...

这是 Node.js 的 Firebase 存储的相关页面:https://firebase.google.com/docs/storage/admin/start

这是服务器端上传到 Firebase Storage(实际上是 Google Cloud)的官方页面。它链接到 the official Google Cloud docs解释如何上传文件。

...因此,将 Firebase 文档中的这两件事放在一起,您将获得存储桶引用:

var bucket = admin.storage().bucket("my-custom-bucket");

...然后引用 Google Cloud 文档中的此代码,了解使用存储桶引用进行上传的示例:

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

/**
* TODO(developer): Uncomment the following lines before running the sample.
*/
// const bucketName = 'Name of a bucket, e.g. my-bucket';
// const filename = 'Local file to upload, e.g. ./local/path/to/file.txt';

// Uploads a local file to the bucket
await storage.bucket(bucketName).upload(filename, {
// Support for HTTP requests made with `Accept-Encoding: gzip`
gzip: true,
metadata: {
// Enable long-lived HTTP caching headers
// Use only if the contents of the file will never change
// (If the contents will change, use cacheControl: 'no-cache')
cacheControl: 'public, max-age=31536000',
},
});

console.log(`${filename} uploaded to ${bucketName}.`);

关于node.js - 使用node.js firebase.storage is not a function错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55107111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com