Node.js (Express) Firebase Storage 大多数功能不工作

Node.js (Express) Firebase Storage most functions don't work

所以,storage.ref() 有效,storage.child("some.txt") 有效,return 是一个文件引用,我可以通过 [=20 得到它的名字=].姓名.但我无法下载 link 也无法上传文件。 我的配置如下:

|-firebase
  |-firebase.js
  |-storage.js
|-index.js
firebase.js:
    const firebase = require('firebase/app');
    global.XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
    let firebaseStorage = require('firebase/storage');
    // Your web app's Firebase configuration
    var firebaseConfig = {
      apiKey: "abc", //real credentials are provided
      authDomain: "def", //real credentials are provided
      projectId: "xyz", //real credentials are provided
      storageBucket: "hi", //real credentials are provided
      messagingSenderId: "idk", //real credentials are provided
      appId: "some" //real credentials are provided
    };
    // Initialize Firebase
    firebase.initializeApp(firebaseConfig);
    console.log('[FIREBASE] Firebase Init')


    module.exports = firebase;

而存储只是导出 firebase.storage();没什么太多。 这里的问题是: 这没有 return 任何东西,整个代码都停留在这一点上:

  let fileRef = storageRef.child('myfile.txt');

  fileRef.getDownloadURL().then((downloadURL) => {
    console.log('File available at: ', downloadURL);
    res.send(downloadURL);
  });

我花了很多时间试图找到类似的问题并为此使用不同的库,但我找不到任何东西。

Firebase javascript 模块设计用于在浏览器环境中工作,对于 node.js 建议使用具有有限凭据的 admin sdk 或 GCloud Node。您可以将其与现有存储桶和典型的 Firebase 设置一起使用。

引用 Firebase 开发人员的话:

Since Google Cloud Storage already provides a number of high-quality client libraries, we didn't want to reimplement another

客户端环境:GCP integration

服务器环境:Admin-sdk Get Started

来到这里尝试修复它的每个人,这就是我所做的。 我使用了 firebase-admin 并将其导出到 var admin(在使用 serviceAcc 初始化之后) 然后我做了 var storage = admin.storage() 然后得到 @google-cloud/storage Bucket 实例 storage.bucket() 现在我可以下载、上传和执行 @google-cloud/storage Bucket 包含的所有内容。感谢 @DIGI Byte 帮助我