使用Firebase email trigger扩展发送带PDF附件邮件出现INVALID_ARGUMENT错误
Firebase email trigger扩展发送Base64编码PDF附件报错解决方案
该报错核心原因是传入的attachments字段结构不符合扩展要求,或者附件编码格式非法,按以下步骤操作即可直接发送编码后的PDF,无需先上传到存储服务:
- 第一步:将生成的PDF二进制内容转换为纯Base64编码字符串,不要保留
data:application/pdf;base64,这类数据头前缀。 - 第二步:严格按照如下平级结构构造邮件文档的
attachments字段,禁止额外嵌套层级:
// 写入触发邮件的Firestore集合的文档结构示例 db.collection("your-email-trigger-collection").add({ to: "收件人邮箱地址", message: { subject: "邮件主题", html: "<p>邮件正文内容</p>", // attachments必须是数组,单个附件也需要用数组包裹 attachments: [ { filename: "你的文件名.pdf", content: "此处替换为PDF的纯Base64编码字符串", encoding: "base64", // 必须明确声明编码格式,不可省略 contentType: "application/pdf" // 建议补充明确文件类型,避免客户端识别异常 } ] } })
常见踩坑排查:
- 不要给附件对象额外套外层字段,例如把附件信息包在
data/file等自定义字段内,会直接触发「无效嵌套实体」报错- 确保Base64编码完整,没有换行、空格等多余字符
- 不要直接传入PDF原始二进制流、明文内容作为附件值,扩展仅支持通过指定编码的字符串识别内嵌附件
内容的提问来源于stack exchange,提问作者Bokris Itzhak
相关产品推荐
相关产品推荐

