【发布时间】:2018-08-08 00:21:00
【问题描述】:
起初,我使用 npm 初始化项目。
npm init
npm install --save firebase
之后,我编写了以下代码并使用 Node.js 稳定版(v8.9.4)执行。
const firebase = require('firebase');
const config = {
apiKey: '<API_KEY>',
authDomain: '<MY_PROJECT>.firebaseapp.com',
databaseURL: 'https://<MY_PROJECT>.firebaseio.com/',
storageBucket: 'gs://<MY_PROJECT>.appspot.com/'
}
firebase.initializeApp(config);
const storage = firebase.storage();
那么会出现如下错误:
TypeError: firebase.storage is not a function
at Object.<anonymous> (/Users/myuser/sandbox/google/storage_sample/index.js:12:26)
at Module._compile (module.js:643:30)
at Object.Module._extensions..js (module.js:654:10)
at Module.load (module.js:556:32)
at tryModuleLoad (module.js:499:12)
at Function.Module._load (module.js:491:3)
at Function.Module.runMain (module.js:684:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3
我参考了firebase官方文档。(https://firebase.google.com/docs/storage/web/create-reference)
如果我使用“firebase-admin”,就没有问题,而且它的工作原理如下。
const admin = require('firebase-admin');
var serviceAccount = require('./AUTH_FILE.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://<MYPROJECT>.firebaseio.com",
storageBucket: '<MYPROJECT>.appspot.com/'
});
const storage = admin.storage();
const bucket = storage.bucket();
bucket.
getFiles().then(results => {
const files = results[0];
console.log("Files:");
files.forEach(file => {
console.log(file.name);
});
}).catch(err => {
console.error("Error:", err);
});
是使用“firebase-admin”在 javascript 中访问云存储的唯一方法吗? 还是我的代码有错误?
【问题讨论】:
标签: node.js firebase firebase-storage