我们有两个项目:staging 和 prod 项目。 在暂存项目中,登录链接照常发送。 但在生产项目中,我们得到了 200 个响应,如 devtools 中所示,但没有发送电子邮件。
有效负载示例
{
"requestType": "EMAIL_SIGNIN",
"email": "[email protected]",
"clientType": "CLIENT_TYPE_WEB",
"continueUrl": "https://example.com/onboarding?actionId=onboarding",
"dynamicLinkDomain": "link.example.com",
"canHandleCodeInApp": true
}
200 条回复
{
"kind": "identitytoolkit#GetOobConfirmationCodeResponse",
"email": "[email protected]"
}
所以不知何故,这一目标正在发挥作用,但没有收到电子邮件。这与暂存中的电子邮件地址相同,因此这不是电子邮件地址问题
我们已完成故障排除
1. Making sure the domain is whitelisted.
We have even removed it (temporarily) to reverse test and get a 400 response, and
adding it back to a 200 response
2. The dynamic link is well in place
3. We have a custom domain e.g `auth.example.com` for google signin redirect.
We have even changed that to the default `example.firebaseapp.com` auth domain and
still nothing
4. We have checked the spam folders and nothing
基本上我们已经在暂存环境中工作了一段时间,一切都很顺利,但现在我们正在准备上线,这个交付问题是生产环境中的问题
这里可能出现什么问题。
过了一段时间,我取消了模板中的自定义域,它是 example.com,我在其他地方托管的网站也是相同的(example.com)。 这在某种程度上引起了冲突。
删除它,然后返回默认的 firebaseapp.com 发件人,发送电子邮件并完成。
因此,我为 firebase 创建了一个用于发送电子邮件的子域,例如 mail.example.com 并将其添加到模板自定义域中。
现在一切正常