官方文档中的 Firebase 云存储 API 无法正常工作



首先,我使用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文件。

如果我使用" 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);
  });

是访问JavaScript中云存储以使用" Firebase-Admin"的唯一方法?还是我的代码中有任何错误?

如果您在node.js上运行,则正确的库是firebase-admin,如您所发现的。

Web SDK用于在浏览器中运行,您不在。

最新更新