我正在编写Firebase应用,我需要在运行Node.js的后端中进行一些更改
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
storageBucket: config.get("firebase.storage")
});
我可以从初始化admin中获取信息,并且能够查看该文件中的现有元数据。设置无效:
const myfile = {URL: "/users/1/demo.png"}; //this file exists
const bucket = admin.storage().bucket();
const [metadata] = await bucket.file(redeemable.URL).getMetadata();
console.log(metadata); //this works
if (!metadata.metadata.whitelist) metadata.metadata.whitelist = {};
metadata.metadata.whitelist[req.user.userId] = true;
await bucket.file(myfile.URL).setMetadata(metadata);
firebase管理员不应该具有访问权限吗?我也没有任何错误。
答案 0 :(得分:0)
正如 OP 在评论中指出的那样,metadata
对象必须是 { metadata: Record<string, string> }
类型。 documentation 没有提到这一点,TypeScript 类型也没有帮助。
编辑:文档确实实际上提到了它(强调我的):
<块引用>您可以在给定对象的元数据键中设置自定义键/值对,
但是措辞很容易让人错过。
bucket
.file("path/to/file")
.setMetadata({
metadata: {
someKey: "someValue",
},
})