我创建了一些使用Firebase SDK从firebase存储上传和下载带有云功能的文件的功能。我希望以管理员身份执行这些功能,这样他们就不需要遵守存储规则了。
我已经用admin SDK替换了firebase SDK,但我发现我的firebase.storage()。ref引用不再有用了,通过阅读一些文档我已经意识到我现在需要使用google云服务系统。
所以我的问题是,有没有办法让云功能在整个firebase项目上拥有管理员权限而无需切换到谷歌云功能,如果没有,是否有工作可以做到这一点,以便我可以以某种方式授权我的云功能是对整个存储具有完全读/写功能吗?我很困惑!
这是我的代码片段:
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
Firebase客户端库不适用于后端服务器环境。 Firebase Admin SDK适用于后端,但访问云存储的API与客户端SDK不同。 Admin SDK只是wraps云存储服务器SDK。因此,对于节点环境,您实际上只是要使用Cloud Storage Node.js client。
你打电话的时候:
const admin = require('firebase-admin')
const storage = admin.storage()
你从节点SDK获得一个Storage对象。它没有ref()方法。你将需要获得一个Bucket对象并使用它:
const bucket = storage.bucket()
从这里开始,您应该继续使用我链接到的API文档。