我可以使用 firebase-admin 通过 nodejs 将文件上传到我的 firebase 存储桶,但是当我转到 firebase UI 时,我无法打开该文件。我注意到通过 firebase UI 上传的文件将自动生成访问 token ,但通过 nodejs 上传的文件则不会。
我已经尝试过一些方法,例如使用下载 token 设置元数据以及在上传文件后将其公开。没有一个有效。
如何通过 API 调用生成访问 token ,而不必转到 hi 并单击为每个上传的文件生成 token ?
截至 2020 年 7 月的完整答案:
在将文件上传到 Firebase Cloud Storage(又名 Google Cloud Storage)时,可以生成 uuid 并将其用作 token
首先导入这个包:
const uuidv4 = require('uuid/v4');
或
const { v4: uuidv4 } = require('uuid');
然后,在上传文件之前生成一个唯一的 ID:
const uuid = uuidv4();
最后,上传您的文件:
最重要的是嵌入
metadata: { firebaseStorageDownloadTokens: uuid, }
在上传功能的元数据字段中
await admin.storage().bucket().upload(filePath, {
destination: thumbFilePathForUpload,
metadata: {
metadata: {
firebaseStorageDownloadTokens: uuid,
}
},
});
为了检查它是否有效,请直接从 Firebase 控制台点击新上传的文件,文件中应该有一个蓝色的可点击链接。您还可以在预览下方的文件位置下找到访问 token 。
例如:
我是一名优秀的程序员,十分优秀!