![](/img/trans.png)
[英]firebase-admin with typescript in firebase cloud functions
[英]Saving a Base64-encoded PDF string to firebase storage using firebase-admin in a cloud function
我有一個以 base-64 字符串編碼的 PDF 文件的內容,我想使用 Firebase Admin SDK 在 TypeScript 雲 function 中將其保存到 Firebase 存儲。這就是我正在嘗試的
const base64Pdf = ...;
const file = admin.storage().bucket().file("invoices/642d5000-851f-449d-8c4a-ec49aafabf80.pdf");
const pdfBuffer = Buffer.from(base64Pdf, "base64");
try {
await file.setMetadata({
contentType: "application/pdf",
});
await file.save(pdfBuffer);
const signedUrls = await file.getSignedUrl({
action: "read",
expires: "12-31-2500",
});
...
} catch (e) {
functions.logger.error(`[checkDocuments] Error saving PDF: ${e}`);
}
但是我一直收到錯誤消息,指出文件 object 不存在。 我知道它不存在,因為我正在嘗試創建它:
保存 PDF 時出錯:錯誤:沒有這樣的 object:myproject.appspot.com/invoices/642d5000-851f-449d-8c4a-ec49aafabf80.pdf
請注意,我已經仔細檢查了我的項目是否啟用了 Firebase 存儲,我什至已經嘗試創建一個“invoices”文件夾。
文件必須存在才能設置其元數據。 嘗試更新setMetadata()
和save()
的順序,如下所示:
// save file before setting metadata
await file.save(pdfBuffer);
await file.setMetadata({
contentType: "application/pdf",
});
const signedUrls = await file.getSignedUrl({
action: "read",
expires: "12-31-2500",
});
或者,您可以使用save()
方法本身設置元數據:
await file.save(pdfBuffer, {
metadata: {
contentType: "application/pdf"
},
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.