我创建了一些功能,这些功能可以使用Firebase SDK从具有云功能的Firebase存储中上传和下载文件,并且它们可以正常工作。 我希望这些功能以admin身份执行,以便它们不需要遵守存储规则。
我已将firebase SDK替换为admin SDK,但是我发现firebase.storage()。ref引用不再起作用,通过阅读一些文档,我意识到我现在需要使用google cloud服务系统。
所以我的问题是,是否有一种方法可以让云功能具有整个Firebase项目的管理员权限,而不必切换到Google云功能;如果没有,是否有解决办法,以便我可以授权我的云功能对整个存储具有完全的读取/写入功能?我很困惑!
这是我的代码的片段:
const firebase = require('firebase-admin');
const functions = require('firebase-functions');
require("firebase-admin")
require("firebase")
require("firebase/storage");
var serviceAccount = require("serviceAccount.json");
var config = {
[...]
credential: firebase.credential.cert(serviceAccount)
};
firebase.initializeApp(config);
var storage = firebase.storage();
var storageRef = storage.ref(); //This returns .ref() is not a function
答案 0 :(得分:0)
Firebase客户端库不适用于后端服务器环境。 Firebase Admin SDK适用于后端,但是访问Cloud Storage的API与客户端SDK不同。 Admin SDK仅wraps个Cloud Storage服务器SDK。因此,对于节点环境,实际上您将只使用Cloud Storage Node.js client。
致电时:
const admin = require('firebase-admin')
const storage = admin.storage()
您正在从节点SDK中获得Storage对象。它没有ref()方法。您将需要获取一个Bucket对象,并使用该对象:
const bucket = storage.bucket()
从这里开始,您应该继续使用我链接到的API文档。