ari*_*xis 6 google-cloud-storage firebase firebase-storage
我正在编写一个 Firebase 应用程序,我需要在运行 Node.js 的后端进行一些更改
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
storageBucket: config.get("firebase.storage")
});
Run Code Online (Sandbox Code Playgroud)
我从初始化管理中获取存储桶,并且能够从该文件中查看现有的元数据。设置它不起作用:
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);
Run Code Online (Sandbox Code Playgroud)
firebase管理员不应该有访问权限吗?我也没有收到任何错误。
正如OP在评论中指出的那样,metadata对象必须是类型{ metadata: Record<string, string> }。文档没有提到这一点,TypeScript 类型也没有帮助。
编辑:文档确实提到了它(强调我的):
您可以在给定对象的元数据键中设置自定义键/值对,
但措辞很容易被忽略。
bucket
.file("path/to/file")
.setMetadata({
metadata: {
someKey: "someValue",
},
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1437 次 |
| 最近记录: |