Node.js(Express)Firebase存储大多数功能不支持';行不通

Node.js(Express)Firebase存储大多数功能不支持';行不通,node.js,firebase,express,firebase-storage,Node.js,Firebase,Express,Firebase Storage,因此,storage.ref()工作,storage.child(“some.txt”)工作并返回一个文件引用,我可以通过.name获取其名称。但我既不能得到下载链接,也不能上传文件。 我的配置如下: |-firebase |-firebase.js |-storage.js |-index.js firebase.js: const firebase=require('firebase/app'); global.XMLHttpRequest=require(“XMLHttpRequ

因此,storage.ref()工作,storage.child(“some.txt”)工作并返回一个文件引用,我可以通过.name获取其名称。但我既不能得到下载链接,也不能上传文件。 我的配置如下:

|-firebase
  |-firebase.js
  |-storage.js
|-index.js
firebase.js:
const firebase=require('firebase/app');
global.XMLHttpRequest=require(“XMLHttpRequest”).XMLHttpRequest;
让firebase存储=需要('firebase/storage');
//您的web应用程序的Firebase配置
var firebaseConfig={
apiKey:“abc”//提供真实凭证
authDomain:“def”//提供真实凭据
projectId:“xyz”//提供真实凭证
storageBucket:“嗨”//提供了真实的凭据
messagingSenderId:“idk”//提供了真实凭证
appId:“提供了一些”//real凭证
};
//初始化Firebase
firebase.initializeApp(firebaseConfig);
console.log(“[FIREBASE]FIREBASE Init”)
module.exports=firebase;
存储只是导出firebase.storage();没什么太多。 这里的问题是: 这不会返回任何内容,整个代码都卡在这一位:

let fileRef=storageRef.child('myfile.txt');
fileRef.getDownloadURL()。然后((downloadURL)=>{
log('文件位于:',下载URL);
res.send(下载URL);
});

我花了很多时间试图找到类似的问题,并使用不同的lib来解决,但我什么也找不到。

Firebase javascript模块设计用于浏览器环境,对于node.js,建议使用具有有限凭据或权限的管理sdk。您可以将其用于现有存储桶和典型的Firebase设置

引用Firebase开发人员的话:

由于谷歌云存储已经提供了许多高质量的客户端库,我们不想再重新实现另一个

客户端环境:


服务器环境:

所有来这里试图修复它的人,下面是我所做的。 我使用firebase admin并将其导出到
var admin
(使用serviceAcc初始化后)
然后我做了
var storage=admin.storage()
然后用
storage.Bucket()
获得了
@google cloud/storage
Bucket实例,现在我可以下载、上传并做
@google cloud/storage
Bucket包含的所有事情了。谢谢你@DIGI Byte帮我解决这个问题

这是云计算吗?@Dharmaraj你什么意思?它在nodejs环境中按节点您是指您自己的express服务器还是使用Firebase云功能?@Dharmaraj ye Node.js express服务器所以您想直接从服务器上传文件到Firebase或
user->server->Firebase
类似的东西?好的,谢谢,但我需要在中使用带有身份验证的存储和Firebasenode js,我在firebase admin中没有找到任何方法,对于gcloud node,你能给我提供一个好的教程吗?当使用firebase admin时,它不允许我访问firebase.storage().ref(),这是因为节点中不支持firestore存储。如果这是一个服务器环境,则必须依赖GCloud解决方案,但是,如中所示,客户端不使用此解决方案。您不能使用
firebase/app
,因为它是为前端客户端使用而设计的。请看这个